{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入基础包、数据 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 数据处理、数据评分相关库\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "# 画图\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "from scipy import stats\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif']='SimHei'# 设置中文显示\n",
    "plt.rcParams['font.size']=14 # 设置字体大小\n",
    "matplotlib.rcParams['axes.unicode_minus'] = False # 解决负号问题\n",
    "\n",
    "#忽略警号\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "# user_log = pd.read_csv('../data/data_format1/sample_user_log_format1.csv',index_col='Unnamed: 0')# 少量样本数据，跑通模型\n",
    "user_log = pd.read_csv(\"F:/临时文件/天猫复购/data_format1/user_log_format1.csv\")\n",
    "user_info = pd.read_csv(\"F:/临时文件/天猫复购/data_format1/user_info_format1.csv\")\n",
    "train = pd.read_csv(\"F:/临时文件/天猫复购/data_format1/train_format1.csv\")\n",
    "test = pd.read_csv(\"F:/临时文件/天猫复购/data_format1/test_format1.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "train['origin'] = 'train'\n",
    "test['origin'] = 'test'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 连接train、test表\n",
    "data = pd.concat([train, test], ignore_index=True, sort=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 连接user_info表\n",
    "data = pd.merge(user_info,data,on='user_id',how='inner')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.drop(['prob'],axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 522341 entries, 0 to 522340\n",
      "Data columns (total 6 columns):\n",
      " #   Column       Non-Null Count   Dtype  \n",
      "---  ------       --------------   -----  \n",
      " 0   user_id      522341 non-null  int64  \n",
      " 1   age_range    519763 non-null  float64\n",
      " 2   gender       514796 non-null  float64\n",
      " 3   merchant_id  522341 non-null  int64  \n",
      " 4   label        260864 non-null  float64\n",
      " 5   origin       522341 non-null  object \n",
      "dtypes: float64(3), int64(2), object(1)\n",
      "memory usage: 27.9+ MB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '类别')"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAGzCAYAAAAR0XJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSQklEQVR4nO3deVxWZf7/8RebbAKmqKBjuZbbuFsxKmqBtppZow4uaWqa4ldTw600zXIr18oZjdQ2S7TFxGos08nUyCE3Shs1kQZNUYRA9vv8/vB3n/H2BgSjA+j7+Xjcj+Kczznnug/g/eY617mOi2EYBiIiIiJiCdfyboCIiIjIjUThS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQu5l3cDROSPk56ezuzZs2nevDmPP/64JcdMTExkxYoV5ObmsmjRomvez7lz5zh79uw1bdu4cWPc3Qv/5y0zMxNfX18A0tLSmD59Oi1btmTUqFHmsoCAAADy8/OJjo6md+/e1K5du8THT0pKIjMzs9TtrlKlCg0bNizVNomJidxyyy3m14ZhsGPHDnbt2sW0adNK3YbCbNq0iS1btjBgwAC6dOlSJvssa/Hx8Rw9epS+ffv+ocfJy8vDw8PjDz2GXP9cNMO9SPlKTU1l7dq117x9ixYtCA8PL3TduXPnCAwMpG/fvrz//vvm8oyMDNzd3alSpQquroV3gOfn55OdnY2Hhweenp4lbk96ejo333wzFy9e5OTJkwQFBZXuDf1/L774ItOnT8ff37/EH3YZGRnk5ORw5swZatas6bQ+JSWF8PBwwsPDWbBgAWfOnKF27dr06dOHjRs38u9//5vQ0FBWrVpFREQECQkJtGzZkkaNGnH06NESt71Hjx5s3bqVGjVqlHib1NRUmjZtSkJCQom3SU5OpkGDBtx///3ExMTg5uYGwJ133sm3337Ld999R4cOHUq8v6L079+f999/n/79+7Nu3brfvb+ylpWVRf369cnIyGDfvn00adLEXPfjjz/y+eefX3UfnTt3LtG56tSpE82aNWPChAk0b97cXB4SEsKpU6f44Ycf8PHxubY3IjcM9XyJlLPU1FSeeuqpa95+xIgRRYYvLy8vAKfwFBkZWeLAFxMTw6OPPmp+nZ6ejouLC56enri5uZkf+Hb+/v4MHjyY5cuXEx0dzfTp0x3WG4aBzWYzw527u7vZE3U5b29vAD7++GO6detWorYOHz6c6Ohoc9srBQYG0rlzZxYuXMhtt93GI488AvzvPC1btgyAu+66C4D9+/cDMHDgwBId/8q2p6SklHibxo0bF9nuoixfvpzc3FyCg4Mdvg8zZ87kvvvu46mnnuJf//oXLi4updrv5c6fP88nn3yCh4cHc+fOLfX2zzzzDEePHjV/XooK+1dTUFBAdnY22dnZrF27Fn9/f3Odt7c3S5YsISIigiFDhvD111+bxzl48GCJfr8WL1581fC1b98+du3axZEjR5gzZ47DugsXLpCYmFjq76HcmBS+RMqZPRh17dqV7du3l3i7NWvWMHToUKpUqXLVfV/5gdexY0dcXFyoVq1aocHn4sWLZGRkkJGRQd26dR3WRUREEBsbW6I2PvPMMzzzzDPF1kycOJGXXnrJabk9EHXv3r1Ex7pccT11S5cuZf/+/Rw5csQ8d25ubpw5c4aNGzcyfPhws7dux44dADz00EOlOr697aUNPX/5y19KXHvq1CmWLVuGr68vM2bMcFh37733cvfdd/Pll1+yZMmSq4aP1NRUPD09qVKlCm5ubg7tXrFiBRcvXmTQoEHUr1+/yH0UFBRgs9nIzs4GwM/PD4Ddu3ezZ8+eIsN6cTIyMszLxN7e3mRlZZGdnU1ubq5T7d/+9jczPJ87d87s+bSHobfeeqvQEL19+3a6d+9ufs+KY/85nTVrllOPrv19FfY9v3DhAtWqVbvq/uXGofAlUs5K82FUmKLGNhVnzJgx13y8e++9l4YNG+Ll5YWrq6v5YV1QUMC8efMIDg42x5cVtSwvL4+8vDxyc3O58847Cz1OQUEBAGvXruX2228vUdueffZZNmzYQEFBQaGXKtetW8fRo0e555578PDwYPny5cClS1Nvvvkm//d//0dubi7PPPMMs2fPZuvWrQQHB9O2bVuntl28eBEfH59Cv3/2tv/4448lajdAz549ze1KYsKECVy8eJFnn3220PFoy5Yto23btkyePJnbb7+dTp06FbmvZs2a8euvvxZ7vLfeeou33nqrRG177LHHWLNmDQBffvllibYpzHPPPcesWbMYP368U08TXLrcmJubi7e3N66urmzYsIFatWrh4uKCzWYzfz4v98svv5Cfn88tt9ziEJSu9nt47Ngx3nvvPWrVqsXw4cNL/B7OnDlD69atmTRpEk899dQ19/zJ9UXhS6Sc/d5/jK/80Fi/fj3r16/H09PTDCC7du1i8ODBZGdnU79+fRYsWHDNx7s8uEVHR/PQQw8RGBhIdnY28+bNo06dOuYHZWHLDhw4QKtWra56nKysLABiY2M5cOBAidp25MgR87iF9WRs3LiRjRs3Apd6KOxDXv/9738THx+PzWYzayMiIvj555/N2sL8+OOPNG3atMi2v/766yVqN1y6nHvTTTeVqHb9+vW89957BAUFERUVVWhN8+bNmTlzJtOnT+fBBx9kx44d/PnPfy60dsCAAeTm5po9X/afyY8//pjDhw8TFhZG+/btS/xeSlP7e7z//vsMHTq00HXTp09nzpw5Tr9fH330EWPHjmXQoEG8+eab5vKr9VJOnTqVgoIChg4dWuIxkDabjWHDhnH69Gmio6MZOnQo1atXL9G2cn1T+BIpZ/YPh/T0dPbs2VPi7Y4dOwY4f2j89NNPfPDBB/j4+JhhIjExkdOnT5Obm0u7du3KpN07d+5kxIgRPP3003z77bfUq1fvqttERkby2muvsXz58qv2vjVq1Ih+/foBl3orSqJ58+YOg6CvtGbNGtasWYOnpycjRowwx70NHjyYuXPnUq1aNTw8PMjKyjLv1Bw5cqQZsLKzs5k6dSohISHcf//9RQ6oDwkJwc/Pr8Tthks9X3Xq1Llq3alTp3jyyScBWLJkCVWrVi2ydurUqezZs4dPPvmE0NBQYmJiCAsLc6p7+eWXnZb98MMPLF68mODgYDZs2EBAQABvv/02r7/+OhMnTuTBBx8s8XuzW7ZsGcnJycXWzJgxo8QD1tu0acO8efPw8vIy/whZsmQJx44dM392rmQfK9ayZcsSt/uTTz4hJiYGuDRusKQmTpzI5s2bady4MV988YWCl5gUvkQqiO+//56QkJDfvZ8JEyYwZcoU3N3dGTlyJCtXruRvf/ubeRnIPpbLy8vrqpcsLx8Uf3lP0sWLFxk1ahSGYTB8+HCaNGlijvUpTocOHXBxcSEyMpK0tDSnqRB2795Neno6Pj4+3HLLLcyYMaPYMW2FycvL4z//+Y/5Pi8PCVWrVqWgoIBx48axdu1aoqKiWLBgAfn5+fTo0YN69erx8ccf4+fnx9tvvw1cGt9jv6x39OhRpk6dyp133ul0I8HmzZvx9PTEx8eH+++/n7/+9a+lvqScnZ3Nnj17yMjIwNvb2+lSYU5ODn379uX8+fNEREQUGTDsXFxcWL9+PQ8//DCfffYZPXv2ZNKkScyePbvY3hubzcaIESPIzc3l1VdfNafeSElJYceOHaW67Ha5999/n127dhVbM3PmzBLvr02bNrRp08b8+ueff2b8+PG0b9++yF4++x87JZ065MKFC4wePbrEbbKbNm0aS5YsoWHDhnz11VclCtZy41D4Eqkg2rZty2uvvVbi+tjY2ELHwVzea/Dtt986rX/ppZeYNWtWqdq2fPlyIiMjgUvh5tFHHyUhIYH777+fefPmFbmd/bKe/b9DhgzBzc2NoUOHMn36dPLz8x0Gi8+aNatE0wKUxuWz6Zw4cYLHH3+cr776ivHjxzNz5kwWLFiAzWZj8uTJDBo0iIiICMaMGWNOLXH06FHzg9reaxMcHOx0nEcffZScnJwya/eVN2Dk5+czcOBAdu7cScOGDVm4cCH5+fm4uroWe+nay8uLTZs2mT19CxYsICYmhqVLlxbZezVp0iR27drFqFGjePjhh83l9svYpQ3EdvbtCpvhqGXLliQkJJRqWpMrzZ492wzXRbGPqyvJJV7DMBg0aBC//PILISEh7N69+6rb2Gw2nnrqKZYtW8att97Ktm3bnG5aEVH4Eqkg/P39ixx8XpjDhw8Xuz4pKckcK2Wz2XjuueeIiIigWbNmjBgxAj8/P9zd3c3Lli+99BLBwcEMGDDA3If91v7LL+VNnDiRTz/9lD//+c+sW7fO/ODPy8tz+K99e8AhlAwaNIjs7GyeeOIJ5syZQ+/evc0xYO+88w75+fm4u7uTk5ODYRil7j0yDMO8w+3y3rjjx4/TqVMnUlJSWLJkCePGjTOngsjKymLgwIEkJCRw/PhxZs+ebW534MABswfq1KlTAA6Tmtr9/PPPuLm54e7uTmZmpsO5LSmbzYa/v79TiMvLy6N///588MEHBAQEMGHChFJ/oE+aNIlFixYRFRXFyZMnzd6sK/39739n8eLFuLu7U7VqVYe7VePj44FLY84KG4d32223MWjQoCLbUJLv5bWOgdy5cydr166lWbNmREREFFln/54XNg/c5QzDYOTIkWzevJnQ0FCioqJ44IEHrtqOv/71r3zwwQe0b9+e2NjYUk3OKzcOhS+R69Q777xj9jBs3bqV06dP8/XXX/Pll18WerlqyZIl3HLLLcX2ZMGlO9Dy8/OZMmWKOZ0AXLoUCf8bbA7/Cz9XXpIcMWIEmZmZtGvXzmHw/eVjqPr168f69etL+nYdfPXVV05zgzVs2JAPP/wQd3d3OnToQH5+PoMGDWL8+PGMHz8egBdeeIHdu3fTuXNn7r//fr7++mt27dpljrH673//C+Awiafd5b1hzZo148yZM6Vut/2u0SvHceXm5uLn54ePjw+bN2+moKCAoKAg827L48ePU1BQwG233ea0z5SUFM6dO8ctt9xCZGQkt99+Ozt37iQ0NNSpduXKleZYvPz8/EKnAAHMmxau9NBDDxUbvv4o6enpDBs2DMMwGDNmDMuXL2fYsGH4+fk53EQBRfdeXnmnaU5ODqdOneLmm28mJibGDJ5X88EHH/DII4+wdu3aQqdxEQE921HkupSfn8/rr79ujtPq2bMn3bp1Y9u2bUV+cF7pyg8tu+rVq/Paa6/h7u7Of/7zH5KSkjh16hSZmZksXryYp59+mtOnT3P69GmysrJYvHgxkydPNpedPn2aCxcuMH78+EIDgJ09gBw6dMicmiIvL88MchEREQ7L8/LyzDv/ivrQa9KkCbfddhs5OTl88803fPbZZ5w+fdrsyXJ1daVWrVoMHDiQZ555hpCQEL766itz+3//+99UqVKFZs2aFXvuqlatSu3atZ3aZ7+k+o9//MNp3R133IG3t3ehvWW+vr6sWbOG+Ph4OnfuTNeuXTl16hTHjh3j8OHDuLm5Ub16dQ4fPuz0svdk/ulPfwIuzdA+efJkp2PMmTOHkSNH4u3tbT6i55NPPsEwDPO1YsUK4NLEu5cvT0pKAijRXFllzWazMWDAAH766ScAPvvsM5566inz0uOVoerQoUO4uro69Rxe+QeCl5cXH330ETt37qRWrVrFtuEf//gH//nPf4BLf5zExMQoeEmx1PMlUkHs2LHjd81Efrk33niDY8eOMXr0aHMc2bx587jzzjuZM2cOjzzyCP3798fPz48pU6bQqFEjh+1XrVrFyy+/zK5du4q8Q2v27Nn84x//KHXbXFxc2LJlC/fcc0+xdfabAYq6K+3dd9/l3XffLXbbK91yyy1Oz1x87733eO+99xyWxcXF0bFjR+655x4+//xzvvvuOzp27MiePXvo2LHjVUOGu7s7v/76a5GPRRo5ciQjR450Wn75rO2FKaxn6+TJk+Tm5hY65QX8r6enqMuUqampDBkyhE2bNuHn58fmzZuJj4+/pl7H3zNe61rk5eXx+OOPs3nzZnx9fcnMzKR379788ssvrF69mgEDBpg9snDpUmJcXBzBwcFO35vCxuu5ubkVexdvYmIiTz75JJ9++qm5rDQ3DMiNS+FLpIJo1KiROai9JOLi4gp9zt6ZM2d47rnn8PT0JCoqygxfd9xxBy+++CIjRowgLS2NDz/8EBcXl0I/LD7//HOOHDnC+PHjHeZCuly/fv1o164dnp6eTJ48mdTUVBYtWlTo9AvZ2dk89dRTXLhwgWeeeeaqwQv+N3Zsy5YtNGjQwFxeUFBAy5YtefDBB53mK1u0aBGrVq0qcp+TJ0/G3d2d3NxcnnvuOdq1a2deJjMMg2nTphEcHEzHjh2BS4PoJ06cyOrVq/Hw8OD48eMlenBzXl4egYGBfP311w7Ld+/ezeOPP87zzz/v8MgmuPT8RPu8YqXxzTffAEXPrWUPX/aeryv98MMPxMXFUbNmTbZs2UKHDh1KfIntSiX946Gs/sgYMmQI7777LvXr1+e5554zb+j4+9//Tt++fTEMgzvvvJOYmBjzcuuFCxe46aabaNmyJbNmzSIsLIyvv/662Nn7r5SamsrLL7/MokWLyMrK4pFHHuH777/n+PHjZfK+5Pqn8CVSQfzpT38yxx6VxJo1a5zCl/1OxFOnTjF79myn3o6pU6cCl2aNz83NZeTIkYV+KK9YsYKvvvqKt956i/79+3Pfffc51XTv3t189E/jxo25++67efPNN9m2bZvDJRebzcajjz7KhQsX6N+/f4nvtPw9dw7m5+cXuvzZZ58FYP78+cCleafsg+ljY2PJzs42Z+KHS9+TXr16ER0dbc4AX5Lwda1tL6rdxfn444+Boh/DlJycjIeHR5EDvzt16sQ333yDzWajcePGpT7+tSjssmd0dDQpKSnmDRclMWzYMH744QdiY2P54YcfzOV33HEHR44cMXso7ZeV7TcPDB06lBkzZpCXl0dAQACdO3cuVfvfeOMNXnjhBapXr86KFSt47LHHSjVvmIjCl8h1xGazUadOHbp06cK0adMKvaUfLk0d4eLiwoQJEwpdX7NmTV588UVGjRrFmDFj+OGHH4p9YHCnTp1455136NevH/fddx8xMTHUqlWLixcvMmzYMD788EN69+7Nm2++WeJeD3uAKSz4waXxSJ988kmh6668tHi5c+fOMX/+fHx9fdm6dSvZ2dm0b9+eqVOnEhgY6DRNwcSJE/noo4/44IMP6NKli9Ojhopq+7lz54ocG/bss8+aQfBylz8WpySOHj3Khx9+SI0aNbj33nsLrTl9+jTBwcHF7rNhw4YOXxf1c1OUktbbx18VdlPH5s2bSUlJ4eLFi1e9/Gp31113ERcXh4eHh0P4AufxZ0ePHiUmJoZ7773X7Nm8lkdzwaWfCXd3dyIiIq5616RIYRS+RK4jnp6evP3225w/fx43N7dCe1I2bdrEv//9b3r16sWtt95a5L6GDx/OokWL+Omnn3jxxRd5/vnniz32I488wrvvvsvAgQNp06YNL730EvPnz+fAgQM89thjrFq1qsgxUFdKSUlh0qRJPPvss07jiIq77GgfkF9cUHR1dWXRokVs27aN6OhoZs2aZT5qKCwsjIyMDIe7ONu1a0eNGjU4d+4cXbt2vWrbjx07xpYtW/D29nZ6v8VddszJySE7O5tffvmFm2+++arHyc/PZ+jQoeTn5/PUU08VOg7t/PnzZGdnF3nJsSiFPbi6OPZpJ672/fX19S1y7NnOnTvJz893OPclUdKfqSeffBLDMFi8eHGhl3fz8vLIyMgo8SOeiptLrDBjxoxhzJgxxT6BQW4ghoiUqzNnzhiA8Ze//MU4e/ZsiV/Lly83AGPixIlF7js3N9cAjMGDBxuGYRgXL1406tevbwDGzp07HWqrVKlidOrUyWHZG2+8Yfj7+xtz584t8ft59913DcB8jRs3ruQn4/+LiYlx2EdpX3fffXeJjmOz2YxBgwYZgFGvXj0DMNzd3Y3ly5cbhmEYp0+fNjp37mwAhr+/v+Hq6mqsWrWq2H2OGTPmd7X9+eefv2q78/LyjL/97W8GYLRt29bIyckptO67774zAOOvf/1ric6H3axZswzA+OSTTxyWv/rqqwZgrF+/3jAMw3j88ccNf39/s+0vvfRSqY5zNTNnzjQAY/r06Vet/ec//2kAxurVq53WLVq0yACMV155xTAMw/j0008NwIiJiTFrfvrpJ+Omm24q8vxv2bLFAIwFCxYUur5FixYGYBQUFDitO3nypHmOkpOTr/pe5PqnqSZEypn9UsyuXbuoWbNmiV9jx44Fih8nZL90Z+/J8PDw4IUXXmDcuHF06tSJCxcukJSURGxsLLm5uU7P1IuIiOD48eNMmTKlyGMYhkFCQgLLly+nR48eDBo0CB8fHx5++GGqVKnC0qVLadOmDVFRUWzcuJHDhw87TMRamO7du3P06FEyMzOx2WwO0xrYtx0wYIDDcvu6jIwM3n///auc9Ut3l3bu3Jm33nqL0aNH8/PPP3PkyBGGDBnCPffcw8aNG2ndujW7du1i8eLFbN++HR8fH0aMGGHOdVaYp59+mv/+979kZWU5tW/r1q3ApbtJr1yXm5vLhQsXrtqjcvz4cbp37866deto0KABmzdvdphx/uLFi6Snp3Py5Elznq7C5iUrTlE9X/afVfs0JA8//DDp6ekEBwczduxYcz60smKf1LYkl2Htbbvy+7J27VomTZrEpEmTnJ4nevnl6SNHjpCammo+M/VK9vd85dQVdvYe2s2bNzttt3LlSuDSnbuFPR1Bbjy67ChSzuwfdE2bNnV6XmBxvv76a1auXFlskLHv2/5f+zgV+wzgb731Fv/3f/9n1l85Mamnp6fTZb9//vOf7Nmzh19++YWDBw9y6NAhMjIyALj11luZMWMGo0aNolatWvzyyy+88sorvPnmmyxcuNDch7u7O8HBwVSvXp2XXnrJfNjzxYsX2b9/P+7u7vj4+HDy5Emn92T/8EtPTy9ylv/8/HxOnDiBj4+Pw7irr7/+mq1bt7J+/XqOHDlCs2bN+Pzzz+nRo4fZ/n79+jF8+HB27NhB3bp1+eyzzwgPDwcu3XnZq1cvZs2axfr163nvvffMSWJPnz7NiRMnqFKlCt7e3qSnpzu1yz4f1unTp4tse15eHjk5OQQFBTlcLjx27BiLFy9m1apV5Obm0r59ezZv3kxQUJDD9jt37qRnz57m1z4+PqWe+HTKlClERkY6XYKz/xzZf+Z69OhBSkpKkQ8YLy2bzcbw4cPJyMjg1KlT7Ny5E6BEl2Gv/EPD/lSHOXPm8Oyzzzrc6GGf3X/evHns27cPFxcXMzRdeTnYrrAnOFzuzjvvJD4+noceeqjINhY2vYjcmBS+RMpZQUEBtWvXplmzZgwcOLDE2+Xn57Ny5cpi76yzryuqpl+/fvz973+ndevW3HPPPSU6fvXq1XnuuecwDANfX19CQkIICwujZ8+eDg85hkt3C86bN48XX3yR3bt3s3XrVrZt28aBAwdISkqiefPmZvCCS4/oCQ0NxcvLC29v7yJ7PGrXrk1cXJxTWLTLzc0lOzubLl26ODwr8vDhw8yZM4euXbsyZ84c+vTp43SMuLg49uzZw6RJk5gxY4bDGKQuXbqwb98+Bg0aRPPmzR0e3rxx40YmTJiAl5cXXl5eRd5YULt2bV555RVeeeWVQtfbH+n07LPPOoTxKlWqsGPHDgzDYMqUKcyaNavQZyz26NGD9u3bk52dzd13382oUaOKnAOsKFWrVnWaZR/+9/QC+4SkVapUKbPgBZjPqYyJiTG/vv/++4t9XNCVbcvKysJmszFmzBjeeecd1q1b5/REh44dO9K9e3e++uorMwS7uLgQERFR5A0e9vnCLp837HLz5s0jKCiI48ePO92AYH9I+uWP7pIbm4tx5U+JiMhVfPrpp/zpT3+iefPmpX72ot0vv/xS7BQIf5SkpKRiJ84E+PXXX4ttl81mo6CgoMSDvctKYmIieXl5lk0JUR727dvHvn37aNiwIa1bty7yGZQlkZeXZ/n3SKQkFL5ERERELKQB9yIiIiIWUvgSERERsZDCl4iIiIiFdLdjBWSz2UhOTsbPz6/MHkArIiIifyzDMPjtt9+oU6dOsfPTKXxVQMnJyVe9G0tEREQqpqSkpGIf66XwVQHZ5xVKSkoq8QNmRUREpHylp6dTr169qz6jVOGrArJfavT391f4EhERqWSuNmRIA+5FRERELKTwJSIiImKhChW+Vq5cSbNmzahSpQpVq1ald+/e5oNo4dIDY11cXJxehT2DLDo6mubNm+Pt7U1ISAjx8fFONTabjfnz59OoUSO8vb3p2bMnx48fd6rLysoiKiqKevXq4evrS9++fUlJSXGqO3fuHCNGjCAoKIiAgABGjhxpPm9MREREBCrQmK9FixYxceJEevbsybhx4zh27BhLlizhhx9+4ODBg3h6erJnzx68vb1ZuXKlw7ZXPrtrwYIFTJ48mdDQUEaNGsWHH35IWFgYCQkJBAcHm3WRkZGsWLGCXr16MW7cOFavXk14eDgHDhzA19fXrHv00UfZsmULQ4YMoVWrVixfvpxevXqxc+dO81bS7OxsevTowf79+4mMjKROnTosXLiQtLQ03nvvvT/wzImIiEilYlQAZ8+eNXx8fIz/+7//c1g+Y8YMAzA++eQTwzAMo0+fPkanTp2K3dfJkycNT09Po3PnzkZubq5hGIaRlZVlNGrUyBg6dKhZ9+233xqA0a9fP4d2+Pv7G7NmzTKXrV+/3gCMyZMnm8t+/PFHw9XV1Vi7dq25bMGCBQZgrFixwlz2z3/+0wCMHTt2lOZ0GGlpaQZgpKWllWo7ERERKT8l/fyuEJcdf/vtN6ZNm8YLL7zgsLxNmzYAnD59GoDdu3cTGhpa7L42bdpETk4OTz/9tNkj5uXlxbBhw/joo48oKCgAICYmBoBp06aZ2wYGBtK/f382bNhgLlu/fj3u7u5ERUWZy5o2bUpYWJhTXc2aNRkxYoS5LDw8nFtvvdWhTkRERG5sFSJ8NWjQgOnTpzuN3fr2228BaN26NYmJiZw6dYp//etf3HzzzXh5edGyZUuWLVtmBiqAgwcPAtCtWzeHfXXo0IHU1FR+/vlns6569eq0atXKqS4hIYHc3FyzrlWrVlSvXt2p7vJxZAcPHqRLly64ubkVW1eYnJwc0tPTHV4iIiJyfaoQ4aswqampvP7667Rp04YOHTrwzTffmMtHjx7NokWLqFWrFuPGjWP69OkO2wUGBjrNj1W7dm0ATpw4YdY1bNjQ6bi1a9fGZrNx8uTJq9YlJyeTm5tLVlYWOTk5RdbZj1mUuXPnEhAQYL40u72IiMj1q8KGr/Hjx3P+/HkWL16Mi4sLDRo04IUXXmDv3r1MmTKF0aNH88UXX9CjRw9eeeUV0tLSgEt3MF4+WN7Ox8cHgAsXLpRZnWEYpKenY7PZAIqss++rKFOnTiUtLc18XX6Hp4iIiFxfKmT4Wrt2LW+++SZPPfWUefkwJCSEadOm4e3tbda5uroyfPhwMjMzzZ4xHx8fMwxdzjAM4NJdiWVd5+3tjYuLS5F19n0VxdPT05zNXrPai4iIXN8qXPjau3cvo0aNomvXrsyfP/+q9fbepuTkZADq1q1LcnIy+fn5DnVnz54FMINN3bp1SUxMdNrftdS5uroSFBRUZJ3ClIiIiNhVqPCVmJhIr169qFOnDhs3bsTd/X/TkE2aNImXX37ZaZvvv/8egFq1agHQtm1bCgoK2L17t0NdXFwcgDnPV9u2bUlKSjLHdhVXFx8fz8WLF53qfH19zWDVtm1bs/ftyrrL5xYTERGRG1uFCV/JycncfffdZGdnExsbS40aNRzWnzx5kvnz55s9TvZlS5cuxc/Pz7w82bNnT3x9fVm2bJlZZ7PZiI6OpkaNGrRr1w6A3r17A7B8+XKzLjMzk3Xr1tG6dWtq1qwJQJ8+fcjIyGD16tVmXVJSEp999hlhYWHmsj59+nDs2DFiY2PNZXFxcezfv5/w8PDfeXZERETkelFhZrgfMGAAx44d44knnmDv3r3s3bvXXNeoUSOmTZvGpk2b6NixI7169SI7O5uNGzead0Xae6D8/f2ZMGECzz//PGPHjqV37968+uqrHDp0iJkzZ5pTQTRp0oSBAwfy8ssv4+/vz5133sns2bM5c+aMw+XOu+66i9DQUCZOnAhA/fr1iYqKIjc3l3Hjxpl1ERERLFiwgEGDBrF06VK8vLyYMGECXl5ejBo1yopTKCIiIpWAi2EfOV6Ozp8/79TTdbnHHnuMNWvWsGfPHqZOnUpcXByenp6EhIQQFRVF165dHeoLCgqIiopiyZIl5iD4oUOHsnLlSodLmZmZmYwaNYq3334bADc3NyZPnuw02euZM2cYPHgwn3/+OQDe3t4sXLiQMWPGONQdPXqUiIgIvvvuOwBuuukmVq1axSOPPFKq85Genk5AQABpaWk33Hix+lNir14k140T8+4v7yaIiJSZkn5+V4jw9UdJTExk//79NG7cmObNmxdZd/jwYY4cOULr1q2pX79+kXXff/89SUlJ3H777QQFBRVaYxgGu3fvJjU1lU6dOlGtWrVSt1vhS24UCl8icj1R+KrEFL7kRqHwJSLXk5J+fleYAfciIiIiNwKFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJioQoVvlauXEmzZs2oUqUKVatWpXfv3iQlJTnUfPzxx7Rr1w4fHx/+/Oc/88UXXxS6r+joaJo3b463tzchISHEx8c71dhsNubPn0+jRo3w9vamZ8+eHD9+3KkuKyuLqKgo6tWrh6+vL3379iUlJcWp7ty5c4wYMYKgoCACAgIYOXIkWVlZ13g2RERE5HpUYcLXokWLGDlyJLfccgvLli3jySefJDY2lrvvvpucnBwA3n//fR5++GFsNhtz586lSZMm3HfffRw4cMBhXwsWLGD48OHUrFmT+fPn4+XlRVhYGKdOnXKoi4yMZMqUKbRs2ZL58+dz5swZwsPDyczMdKh79NFHWbhwIWFhYcyZM4e9e/fSq1cvbDabWZOdnU2PHj1YvXo1/fv3Z/r06XzwwQcMHTr0DzpjIiIiUhm5GIZhlHcjUlJSuOWWWxg+fDhLly41l8+cOZPZs2fzySef0L17dxo0aEBAQADx8fH4+flhs9no2rUrHh4ebNu2DYCkpCSaNGlCx44d2bZtGx4eHmRnZ9OyZUtCQ0N54403AIiLi+OOO+6gX79+vPfee2Y7GjVqxMSJE5kxYwYAMTEx9O3bl8mTJzNv3jwADh8+TIsWLVi9ejWDBw8GYOHChURFRbFixQpGjRoFwNatW+nRowc7duwgNDS0xOcjPT2dgIAA0tLS8Pf3/51nt3KpPyW2vJsgFjox7/7yboKISJkp6ed3hej5+u2335g2bRovvPCCw/I2bdoAcPr0abZv387Zs2cZO3Ysfn5+ALi6ujJ69Gh27NhhXgbctGkTOTk5PP3003h4eADg5eXFsGHD+OijjygoKAAuhSqAadOmmccLDAykf//+bNiwwVy2fv163N3diYqKMpc1bdqUsLAwp7qaNWsyYsQIc1l4eDi33nqrQ52IiIjc2CpE+GrQoAHTp0+natWqDsu//fZbAFq3bs3BgwcB6N69u0NNhw4dsNls7Nu3D8Cs69atm1NdamoqP//8s1lXvXp1WrVq5VSXkJBAbm6uWdeqVSuqV6/uVHf5OLKDBw/SpUsX3Nzciq0rTE5ODunp6Q4vERERuT5ViPBVmNTUVF5//XXatGljBieAhg0bOtTVrl0bgBMnTpjbBQYGOnX3FVZ35b7sdTabjZMnT161Ljk5mdzcXLKyssjJySmyzn7MosydO5eAgADzVa9evWLrRUREpPKqsOFr/PjxnD9/nsWLF+Pi4mIObvfx8XGos3994cIF4NIdjL6+vk77+yPqDMMgPT3dbFtRdfZ9FWXq1KmkpaWZryvv8BQREZHrh3t5N6Awa9eu5c0332TChAnm5UMfHx9cXV0pKCjA3f1/zbbfL5CdnW3WXX4XohV11atXdwiIV9bZ91UUT09PPD09i60RERGR60OF6/nau3cvo0aNomvXrsyfP99cXrduXWw2m1Ov0NmzZwHMy4x169YlOTmZ/Pz8q9YlJiY6Hf9a6lxdXQkKCiqy7ka7Y1FERESKVqHCV2JiIr169aJOnTps3LjRoYerbdu2AOzcudNhm7i4OACCg4PNuoKCAnbv3n3VuqSkJHNsV3F18fHxXLx40anO19fXDFZt27blm2++cXpPcXFx5r5EREREKkz4Sk5O5u677yY7O5vY2Fhq1KjhsL59+/bcfPPNvPbaaw69WqtWrcLNzc28C7Jnz574+vqybNkys8ZmsxEdHU2NGjVo164dAL179wZg+fLlZl1mZibr1q2jdevW1KxZE4A+ffqQkZHB6tWrzbqkpCQ+++wzwsLCzGV9+vTh2LFjxMb+b56quLg49u/fT3h4+O89PSIiInKdqDBjvgYMGMCxY8d44okn2Lt3L3v37jXXNWrUiJCQEGbOnMmwYcMYMGAAI0eO5P3332fLli089thjBAYGApcuA06YMIHnn3+esWPH0rt3b1599VUOHTrEzJkzzakgmjRpwsCBA3n55Zfx9/fnzjvvZPbs2Zw5c8bhcuddd91FaGgoEydOBKB+/fpERUWRm5vLuHHjzLqIiAgWLFjAoEGDWLp0KV5eXkyYMAEvLy9z0lURERGRCjHD/fnz5516ui732GOPsWbNGuDSo4NmzJhhPnLogQce4J133nEYV1VQUEBUVBRLliwxB8EPHTqUlStXOlzKzMzMZNSoUbz99tsAuLm5MXnyZKfJXs+cOcPgwYP5/PPPAfD29mbhwoWMGTPGoe7o0aNERETw3XffAXDTTTexatUqHnnkkVKdD81wLzcKzXAvIteTkn5+V4jwVVq//vorcXFx1KlTh/bt2xdZl5iYyP79+2ncuDHNmzcvsu7w4cMcOXKE1q1bU79+/SLrvv/+e5KSkrj99tsJCgoqtMYwDHbv3k1qaiqdOnWiWrVqJX1bJoUvuVEofInI9eS6Dl/XO4UvuVEofInI9aRSPdtRRERE5Eah8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELFRhw9eYMWPo1q2b0/KdO3fi4uLi9KpatapTbXR0NM2bN8fb25uQkBDi4+Odamw2G/Pnz6dRo0Z4e3vTs2dPjh8/7lSXlZVFVFQU9erVw9fXl759+5KSkuJUd+7cOUaMGEFQUBABAQGMHDmSrKysazsJIiIict1xL+8GFGbBggW89tprdO3a1Wndnj178Pb2ZuXKlQ7LPTw8nPYxefJkQkNDGTVqFB9++CFhYWEkJCQQHBxs1kVGRrJixQp69erFuHHjWL16NeHh4Rw4cABfX1+z7tFHH2XLli0MGTKEVq1asXz5cnr16sXOnTtxdb2UYbOzs+nRowf79+8nMjKSOnXqsHDhQtLS0njvvffK8hSJiIhIJeViGIZR3o2wy8vLY+zYsaxZswY/Pz9atGjB9u3bHWoeeeQRfv31V3bu3FnkfpKSkmjSpAkdO3Zk27ZteHh4kJ2dTcuWLQkNDeWNN94AIC4ujjvuuIN+/fqZ4SglJYVGjRoxceJEZsyYAUBMTAx9+/Zl8uTJzJs3D4DDhw/TokULVq9ezeDBgwFYuHAhUVFRrFixglGjRgGwdetWevTowY4dOwgNDS3ReUhPTycgIIC0tDT8/f1LfgKvA/WnxJZ3E8RCJ+bdX95NEBEpMyX9/K5Qlx137dpFbGwsX3zxBS1atCi0Zvfu3VcNMZs2bSInJ4enn37a7BHz8vJi2LBhfPTRRxQUFACXQhXAtGnTzG0DAwPp378/GzZsMJetX78ed3d3oqKizGVNmzYlLCzMqa5mzZqMGDHCXBYeHs6tt97qUCciIiI3rgoVvpo2bcqhQ4fo3LlzoesTExM5deoU//rXv7j55pvx8vKiZcuWLFu2zAxUAAcPHgRwGjPWoUMHUlNT+fnnn8266tWr06pVK6e6hIQEcnNzzbpWrVpRvXp1p7rLx5EdPHiQLl264ObmVmzdlXJyckhPT3d4iYiIyPWpQoWv2rVrExAQUOT6b775BoDU1FRGjx7NokWLqFWrFuPGjWP69OlmXWpqKoGBgU5dfrVr1wbgxIkTZl3Dhg0LbYfNZuPkyZNXrUtOTiY3N5esrCxycnKKrLMfszBz584lICDAfNWrV6/IWhEREancKlT4upoGDRrwwgsvsHfvXqZMmcLo0aP54osv6NGjB6+88gppaWnApTsYLx8sb+fj4wPAhQsXyqzOMAzS09Ox2WwARdbZ91WYqVOnkpaWZr6SkpKKPgkiIiJSqVWq8BUSEsK0adPw9vY2l7m6ujJ8+HAyMzPNnjEfHx8zDF3Ofm9BdnZ2mdd5e3vj4uJSZJ19X4Xx9PTE39/f4SUiIiLXp0oVvopi721KTk4GoG7duiQnJ5Ofn+9Qd/bsWQAz3NStW5fExESn/V1LnaurK0FBQUXWKVCJiIgIVLLwNWnSJF5++WWn5d9//z0AtWrVAqBt27YUFBSwe/duh7q4uDgAc56vtm3bkpSUZI7tKq4uPj6eixcvOtX5+vqawapt27Zm79uVdZfPLSYiIiI3rkoVvk6ePMn8+fPNHif7sqVLl+Ln52fe3dizZ098fX1ZtmyZWWez2YiOjqZGjRq0a9cOgN69ewOwfPlysy4zM5N169bRunVratasCUCfPn3IyMhg9erVZl1SUhKfffYZYWFh5rI+ffpw7NgxYmP/N1dVXFwc+/fvJzw8vOxOhIiIiFRaFXKG+6JMmzaNTZs20bFjR3r16kV2djYbN24kNTWV119/3eyB8vf3Z8KECTz//POMHTuW3r178+qrr3Lo0CFmzpxpTgXRpEkTBg4cyMsvv4y/vz933nkns2fP5syZM8yfP9887l133UVoaCgTJ04EoH79+kRFRZGbm8u4cePMuoiICBYsWMCgQYNYunQpXl5eTJgwAS8vL3PSVREREbmxVarw1aZNG7Zv387UqVOJjo7G09OTkJAQoqKinB5FNHPmTDIzM1myZAmvvPIKAEOHDuWZZ55xqFuxYgWGYZiz2bu5uTFt2jSGDBli1ri4uBATE8PgwYOJjIwEwNvbm+XLl9O9e3ezztvbm9jYWCIiIsxZ72+66SbefvttmjZtWubnQ0RERCqfCvV4oT9CYmIi+/fvp3HjxjRv3rzIusOHD3PkyBFat25N/fr1i6z7/vvvSUpK4vbbbycoKKjQGsMw2L17N6mpqXTq1Ilq1aqVqs16vJDcKPR4IRG5npT08/u6D1+VkcKX3CgUvkTkelIpn+0oIiIicr1T+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELlXiS1fz8fH799Vc8PT1xdS1dZnNzcyMgIKDUjRMRERG53pQ4fB07doxmzZrh4uJyTQeqVq0aH330EV26dLmm7UVERESuByUOX7Vr1+bVV1/F09PTfDZiSSUnJ/Pcc88RHR2t8CUiIiI3tBKHr2rVqvHkk09e84E2bdrErl27rnl7ERERkevBNT1Ye+nSpXh5eRV5CdIwDHJzc/Hw8GDUqFEA/OUvf6Fx48bX3lIRERGR68A1PduxpAPug4KCSE5OLnWjbnR6tqPcKPRsRxG5npT08/uaer5OnTqFt7d3kWO/bDYb2dnZ5OfnX8vuRURERK5b1xS+ateuXejyU6dO8emnn+Lp6Ymnpye+vr785z//wd/fn5YtW+Lufk2HExEREblulCoNbd26lcTERNzd3XF1dcUwDHJycujVqxdBQUH89NNPDB8+3Gk7FxcXgoOD2bt3L0FBQWXWeBEREZHKplTh68033+Tdd9/l8mFiLi4utGzZ0gxVLi4unDx5Ej8/Py5evMjFixf54YcfeOihh4iOjmb69Oll+w5EREREKpFSP16oR48enD17lrNnz7J//34KG6/v4eGBv78/QUFBNGzYkAceeICgoCC++uqrMmm0iIiISGVV6kFYHh4e1KhRA4Ds7Gzg0iSqSUlJ5ObmAhQ6BcVzzz3Hvffe+3vaKiIiIlLplckI+OjoaPr162d+3aVLF9q2bUtYWBgDBgzAy8uLESNGlMWhRERERCq1Ul92LEzbtm2ZM2cOTzzxBIZh0KBBA7777jtGjBjBn/70JzZu3FgWhxERERGp9Erd83X8+HEWLVoEQFpaGi4uLjzwwAP85S9/YceOHaxcuZK1a9dSq1Yttm3bxrhx4+jXrx//+Mc/GDZsWJm/AREREZHKpNTh64cffmDSpEmFrrNPqlpQUADAXXfdxc6dOwkLC+PJJ5/k5ptvJjw8/Hc0V0RERKRyK9Vlx1WrVpGTk4PNZsNms5Gfn09mZiZ33HEHAFlZWRiGQVZWlrlNQEAAH3/8Md7e3kybNq1sWy8iIiJSyZSq58vLy8vha1dXV7y9vc2vw8LCSEpKIjg42KGuTp06rF27ls6dO/+OpoqIiIhUfmUy4N7Oy8uLWrVq8fbbb5ORkeGwrlWrVgQGBpbl4UREREQqnWsOX99++y0eHh7m1wkJCezfv5+cnByGDh3K2bNnzXXHjh2jbdu2bNq06fe1VkRERKSSu+Z5vry8vBwelB0ZGcmpU6fMWe8vD2ZffvklGRkZ1KpV6/e1VkRERKSSK/WA+6eeegoAT09PcwzY+vXr2bFjB88//zyenp4ADuFrzZo1NG7cmDvvvLOs2i0iIiJSKZWq52vr1q1s2LCB/Px8nnzySVxcXMjLyyMqKoq//e1v/PWvfzVr7Y8Yio+PZ8+ePbz55ptl23IRERGRSqhU4Wv9+vW89tprjBs3ju+++w6AZcuWcf78eRYvXuxUbxgGY8aMoW3btgwcOLBsWiwiIiJSiZV6zNfo0aOpU6cOiYmJPPfcc3zwwQdMnTrVYTyXvddr5syZJCQkmEFNRERE5EZ3TQPue/fuzZEjR5g1axaffvqpOfYrLy8PV1dXDMNg/PjxfPDBB8TExHDbbbeVaaNFREREKqtSha+BAwfy22+/4ebmRkZGBpmZmQwZMoSCggKysrIIDAzkX//6FwCffPIJsbGx3H333X9Iw0VEREQqo1Ld7XjhwgVSUlI4e/Ys58+fJy8vjwMHDpCSksL58+ex2WyEhIQAkJmZyRtvvEFaWtof0nARERGRyqhUPV+bN282///w4cM0b96czMxMXn/9dZo1a2auc3V1ZfHixcydO5du3brxr3/9Cz8/v7JrtYiIiEgldU0z3L/zzjskJSXh7+9Ply5deOihh8jMzHSo+dvf/sbu3bv59ddfefLJJ8uksSIiIiKVXanD1zvvvMNjjz3G5MmTcXV15a233sLd3Z2oqCin2gYNGrBixQrWrVtHXFxcmTRYREREpDIrVfjavHkzQ4cO5ZFHHmHNmjXApZnuV6xYwapVqzh27JjTNg899BC33norL730Upk0WERERKQyK1X4aty4MREREaxbt44qVapQUFAAQNeuXencuTPz5s0zaw3DMP9/6NChbNq0SYPvRURE5IZXqvDVtGlT1qxZg6urKzk5OVy8eNFcN2bMGN555x1Onz4NgM1mM9c98MAD5Obm8umnn5ZRs0VEREQqp2sacA+Qk5NDQUEBOTk5ANxzzz3cdddd5OXlmevtmjVrRtWqVfnPf/7zO5srIiIiUrld0wz3AK1ateLHH3/E09MTAF9fXzZv3kxeXh6rV68mMDDQrHVxcWHz5s2Ehob+/haLiIiIVGLXHL68vLwKfWyQh4cHjz32mNNyBS8RERGR33HZUURERERKT+FLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQsVGHD15gxY+jWrVuh6z7++GPatWuHj48Pf/7zn/niiy8KrYuOjqZ58+Z4e3sTEhJCfHy8U43NZmP+/Pk0atQIb29vevbsyfHjx53qsrKyiIqKol69evj6+tK3b19SUlKc6s6dO8eIESMICgoiICCAkSNHkpWVVbo3LyIiItetChm+FixYwGuvvVbouvfff5+HH34Ym83G3LlzadKkCffddx8HDhxw2sfw4cOpWbMm8+fPx8vLi7CwME6dOuVQFxkZyZQpU2jZsiXz58/nzJkzhIeHk5mZ6VD36KOPsnDhQsLCwpgzZw579+6lV69e2Gw2syY7O5sePXqwevVq+vfvz/Tp0/nggw8YOnRoGZ0ZERERqexcDMMwyrsRdnl5eYwdO5Y1a9bg5+dHixYt2L59u7k+MzOTBg0aEBAQQHx8PH5+fthsNrp27YqHhwfbtm0DICkpiSZNmtCxY0e2bduGh4cH2dnZtGzZktDQUN544w0A4uLiuOOOO+jXrx/vvfceACkpKTRq1IiJEycyY8YMAGJiYujbty+TJ09m3rx5ABw+fJgWLVqwevVqBg8eDMDChQuJiopixYoVjBo1CoCtW7fSo0cPduzYQWhoaInOQ3p6OgEBAaSlpeHv7//7T2wlUn9KbHk3QSx0Yt795d0EEZEyU9LP7wrV87Vr1y5iY2P54osvaNGihdP67du3c/bsWcaOHYufnx8Arq6ujB49mh07dpiXATdt2kROTg5PP/00Hh4eAHh5eTFs2DA++ugjCgoKgEuhCmDatGnmMQIDA+nfvz8bNmwwl61fvx53d3eioqLMZU2bNiUsLMyprmbNmowYMcJcFh4ezq233upQJyIiIjeuChW+mjZtyqFDh+jcuXOh6w8ePAhA9+7dHZZ36NABm83Gvn37HOquHDPWoUMHUlNT+fnnn8266tWr06pVK6e6hIQEcnNzzbpWrVpRvXp1p7rLx5EdPHiQLl264ObmVmzdlXJyckhPT3d4iYiIyPWpQoWv2rVrExAQUOT61NRUABo2bOi0HcCJEyfMusDAQKcuv8LqrtyXvc5ms3Hy5Mmr1iUnJ5Obm0tWVhY5OTlF1tmPWZi5c+cSEBBgvurVq1dkrYiIiFRuFSp8XY19cLuPj4/DcvvXFy5cMOt8fX2dtv8j6gzDID093WxbUXX2fRVm6tSppKWlma+kpKQia0VERKRycy/vBpSGj48Prq6uFBQU4O7+v6bb7xnIzs426y6/C9GKuurVq+Pi4lJknX1fhfH09MTT07PI9SIiInL9qFQ9X3Xr1sVmszn1DJ09exbAvMxYt25dkpOTyc/Pv2pdYmKi03Gupc7V1ZWgoKAi6260uxZFRESkcJUqfLVt2xaAnTt3OiyPi4sDIDg42KwrKChg9+7dV61LSkoyx3YVVxcfH8/Fixed6nx9fc1g1bZtW7755hundsfFxZn7EhERkRtbpQpf7du35+abb+a1115z6NVatWoVbm5u5l2QPXv2xNfXl2XLlpk1NpuN6OhoatSoQbt27QDo3bs3AMuXLzfrMjMzWbduHa1bt6ZmzZoA9OnTh4yMDFavXm3WJSUl8dlnnxEWFmYu69OnD8eOHSM29n9zVcXFxbF//37Cw8PL8EyIiIhIZVWpwperqyszZ85kz549DBgwgG3btjFy5Ei2bNnCwIEDCQwMBC5dBpwwYQIbNmxg7NixfPnllzz66KMcOnSIyMhIcyqIJk2aMHDgQF5++WWef/55tm7dyj333MOZM2cYP368edy77rqL0NBQJk6cyKuvvkpsbCz33HMPubm5jBs3zqyLiIjg1ltvZdCgQbz11lvExMTwyCOP4OXlZU66KiIiIje2SjXgHuDxxx8nJSWFGTNmsH79egAeeOABh14ugJkzZ5KZmcmSJUt45ZVXABg6dCjPPPOMQ92KFSswDMOczd7NzY1p06YxZMgQs8bFxYWYmBgGDx5MZGQkAN7e3ixfvtxhzjFvb29iY2OJiIgwZ72/6aabePvtt2natGnZnggRERGplCrU44VK49dffyUuLo46derQvn37IusSExPZv38/jRs3pnnz5kXWHT58mCNHjtC6dWvq169fZN33339PUlISt99+O0FBQYXWGIbB7t27SU1NpVOnTlSrVq2kbwvQ44XkxqHHC4nI9aSkn9+VNnxdzxS+5Eah8CUi15NK+WxHERERkeudwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsVClC195eXl4e3vj4uLi9Nq7d69Zt3PnTrp06ULVqlVp1KgR69atK3R/H3/8Me3atcPHx4c///nPfPHFF4XWRUdH07x5c7y9vQkJCSE+Pt6pxmazMX/+fBo1aoS3tzc9e/bk+PHjZfPGRURE5LpQ6cLX/v37yc7O5vnnn+ett95yeDVs2BCAr7/+mrCwMP773/8ya9YsunfvTkREBJ9++qnDvt5//30efvhhbDYbc+fOpUmTJtx3330cOHDAoW7BggUMHz6cmjVrMn/+fLy8vAgLC+PUqVMOdZGRkUyZMoWWLVsyf/58zpw5Q3h4OJmZmX/sSREREZFKw8UwDKO8G1Eay5cvZ+LEiaSlpeHt7V1oTcuWLUlOTubQoUPUqVMHgAEDBrBnzx6OHTsGQGZmJg0aNCAgIID4+Hj8/Pyw2Wx07doVDw8Ptm3bBkBSUhJNmjShY8eObNu2DQ8PD7Kzs2nZsiWhoaG88cYbAMTFxXHHHXfQr18/3nvvPQBSUlJo1KgREydOZMaMGSV+j+np6QQEBJCWloa/v/81n6vKqP6U2PJugljoxLz7y7sJIiJlpqSf35Wu52v37t106NChyOCVkJBAQkICQ4YMMYMXXOqVOn78uHm5cPv27Zw9e5axY8fi5+cHgKurK6NHj2bHjh2kpKQAsGnTJnJycnj66afx8PAAwMvLi2HDhvHRRx9RUFAAQExMDADTpk0zjxkYGEj//v3ZsGFDGZ8FERERqawqZfhKS0ujZcuWeHt7c/PNNzNhwgQuXLgAwMGDBwHo3r27w3bt2rXDxcXFDF9F1XXo0AGbzca+ffsc6rp16+ZUl5qays8//2zWVa9enVatWjnVJSQkkJubW+R7ysnJIT093eElIiIi16dKFb6Sk5M5ceIEZ86c4YEHHmDJkiWEh4ezZMkS7r33XgBSU1MBzPFfdp6enlSrVo0TJ04UW1e7dm0Ah7rAwECn7sPC6q7cl73OZrNx8uTJIt/X3LlzCQgIMF/16tW72qkQERGRSsq9vBtQGgUFBcyePZsBAwaYQWfkyJE0bNiQZ555hi+++AKbzQaAr6+v0/Y+Pj5mD5m9zsfHx6kGcKgral/XUleYqVOnMmHCBPPr9PR0BTAREZHrVKXq+apXrx7PPvusUw/TE088AcA///lPM+zYw9XlDMMgOzsbuBSKXF1dzTFbl9cADnVF7eta6grj6emJv7+/w0tERESuT5UqfBXF3uOUnJxM3bp1AUhMTHSosdlsnDt3zgw2devWxWazkZSU5FB39uxZAIe65ORk8vPzr1p35TELqxMREZEbW6UKX2+++SZDhgxxWv79998DUKtWLdq0aYOLiws7d+50qDlw4AA5OTkEBwcD0LZtWwCnuri4OACHuoKCAnbv3n3VuqSkJKexXVfWiYiIyI2tUoWvjIwM1q5dy/bt281l2dnZTJ8+HYBevXpRq1YtOnXqxBtvvEFGRoZZt2rVKgDCw8MBaN++PTfffDOvvfaaQ6/WqlWrcHNzM++C7NmzJ76+vixbtsyssdlsREdHU6NGDdq1awdA7969gUvzkNllZmaybt06WrduTc2aNcvwTIiIiEhlVanC12OPPUbDhg158MEHGT58OOPHj6dVq1bs2LGDxx57zJwOYubMmSQmJvLQQw+xdetWnnnmGf7+97/TrVs32rRpA1ya02vmzJns2bOHAQMGsG3bNkaOHMmWLVsYOHAggYGBwKXLhRMmTGDDhg2MHTuWL7/8kkcffZRDhw4RGRmJm5sbAE2aNGHgwIG8/PLLPP/882zdupV77rmHM2fOMH78+HI4WyIiIlIRVboZ7v/73/8yefJkPv30U3JycmjRogVPPPEEjz/+OC4uLmbdW2+9RWRkpDlnVkhICDExMeaYMLsFCxYwY8YMcnJyAHjggQd45513HMZoFRQUEBUVxZIlS8xB9UOHDmXlypW4u//vhtHMzExGjRrF22+/DYCbmxuTJ0/mhRdeKNV71Az3cqPQDPcicj0p6ed3pQtfpZGWlsY333xDQEAAISEhuLoW3tH366+/EhcXR506dWjfvn2R+0tMTGT//v00btyY5s2bF1l3+PBhjhw5QuvWralfv36p263wJTcKhS8RuZ4ofFViCl9yo1D4EpHryXX7bEcRERGRykzhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjhS0RERMRCCl8iIiIiFlL4EhEREbGQwpeIiIiIhRS+RERERCyk8CUiIiJiIYUvEREREQspfImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELORe3g0QEZEbQ/0pseXdBLHQiXn3l3cTKiz1fImIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImIhhS8RERERCyl8iYiIiFhI4UtERETEQgpfIiIiIhZS+BIRERGxkMKXiIiIiIUUvkREREQspPAlIiIiYiGFLxERERELKXyJiIiIWEjh6w9w6NAh7r33XgICAqhbty5Lliwp7yaJiIhIBeFe3g243hw5coTQ0FBcXV2ZMmUK58+fZ+LEiXh5eTFq1Kjybp6IiIiUM4WvMjZhwgQyMjLYu3cvrVq1AqBKlSpERUUxaNAgfH19y7mFIiIiUp502bEMpaWl8fnnn/PAAw+YwQsgMjKS3377jc8//7wcWyciIiIVgXq+ytCPP/5IQUEB3bt3d1geHBxMnTp1iI+Pp0+fPk7b5eTkkJOTY36dlpYGQHp6+h/b4ArIlnOxvJsgFroRf8ZvZPr9vrHciL/f9vdsGEaxdQpfZSg1NRWAhg0bOq2rXbs2J06cKHS7uXPnMmvWLKfl9erVK9P2iVQ0AUvKuwUi8ke5kX+/f/vtNwICAopcr/BVhmw2G0Ch47p8fHy4cOFCodtNnTqVCRMmOOzn/Pnz1KhRAxcXlz+krVJxpKenU69ePZKSkvD39y/v5ohIGdLv943FMAx+++036tSpU2ydwlcZ8vHxAf4Xwi5nGAbZ2dmFbufp6Ymnp6fDsmrVqpV5+6Ri8/f31z/OItcp/X7fOIrr8bLTgPsyVLduXQASExOd1p09e1a/eCIiIqLwVZYaNWqEv78/O3fudFiemprK0aNHCQ4OLqeWiYiISEWh8FWG3Nzc6NWrFxs2bCA5Odlc/vrrr2MYBuHh4eXYOqmoPD09mTlzptOlZxGp/PT7LYVxMa52P6SUSkJCAh06dOC2227jxRdf5MiRI0ydOpX69euzb98+vLy8yruJIiIiUo4Uvv4An3/+OUOHDuXUqVMANGvWjJiYGFq0aFHOLRMREZHypvD1B8nKyuLrr7/G3d2dLl264OHhUd5NEhERkQpA4UtERETEQhpwLyIiImIhhS8RERERCyl8iYiIiFhIjxcSsVBWVhaff/458fHxnDhxggsXLpCdnY2/vz/BwcH06NGDnj17UqVKlfJuqoiI/EE04F7EIitXriQqKor09HTq1KlD7dq18fHxwTAMzp49y9GjRwFo2rQpGzZsoFmzZuXcYhER+SMofIlYYOnSpUycOJEpU6YQGRlJUFCQU82FCxdYtWoVM2bMoHHjxuzbtw83N7dyaK2IiPyRFL5ELPCnP/2JAQMGMH/+/KvWLl68mEmTJvHll1/SrVu3P75xIiJiKY35ErFARkYGNWrUKFFt06ZNAcjPz/8jmyQiZah79+64uLiUuN7FxYUvv/zyD2yRVGS621HEAiEhIbz00kskJCQUW3f69GmmTZtGcHAwXbp0sah1IvJ7NW/enO3bt5OQkIBhGFd92Wy28m6ylCNddhSxQEJCAl26dOHixYs8+OCDdOvWjYYNG+Lr64vNZiMxMZGdO3eyYcMGcnJy+PjjjwkPDy/vZotIKSxYsIDnnnuOL774gr/85S/l3RypwBS+RCzy008/8dRTT/HPf/6TgoICh0sUhmHg7+9Pr169mDJlCs2bNy/HlorItRo1ahSffvophw4dws/Pr7ybIxWUwpeIxdLT0/nxxx9JTU3FZrPh4+ND3bp1adSoEa6uGgkgUpnl5+eza9cumjVrRs2aNcu7OVJBKXyJiIiIWEh/ZouIiIhYSOFLRERExEIKXyIiIiIWUvgSERERsZDCl4iIiIiFFL5ERERELKTwJSIiImKh/wfn5F13LQALfQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train['label'].value_counts().plot.bar(title=\"目标变量数量分布可视化\")\n",
    "plt.ylabel(\"数量\")\n",
    "plt.ylabel(\"类别\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_log.rename(columns={'seller_id':'merchant_id'},inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 54925330 entries, 0 to 54925329\n",
      "Data columns (total 7 columns):\n",
      " #   Column       Dtype  \n",
      "---  ------       -----  \n",
      " 0   user_id      int64  \n",
      " 1   item_id      int64  \n",
      " 2   cat_id       int64  \n",
      " 3   merchant_id  int64  \n",
      " 4   brand_id     float64\n",
      " 5   time_stamp   int64  \n",
      " 6   action_type  int64  \n",
      "dtypes: float64(1), int64(6)\n",
      "memory usage: 2.9 GB\n"
     ]
    }
   ],
   "source": [
    "user_log.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据探索性分析和处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['user_id'] = data['user_id'].astype('int32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot: title={'center': '特征变量缺失分布可视化'}>"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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JwAAenp6mD9/PkaPHq1Qd+fOHXh4eOCff/4BAFStWhVr165Fz549i3squJI2EZG6cCVtegfF/fwuUUB6X2JiYnDlyhXY2NigYcOGhdbdunULt2/fhr29PaysrAqtu3TpEmJjY9GyZUuYm5urrBEEAREREUhKSkKbNm1QpUqVEvXMgEREpCYMSPQOylRAKosYkIiI1IQBid7Be3kWGxEREVFFwIBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJMGARERERCTBgEREREQkwYBEREREJPFWAWnNmjVo0KABKlWqhMqVK8Pd3R2xsbEKNQcOHECzZs2gr6+PJk2a4NSpUyqPtX79ejRs2BB6enpwcnJCVFSUUo1cLsfcuXNhbW0NPT09uLm54d69e0p1mZmZ8PPzg6WlJQwMDNC7d28kJCQo1b148QLDhg2Dubk5jI2NMWLECGRmZr7NqSAiIqJyqMQBadGiRRgxYgTq1KmDpUuXYuTIkThy5Ag6duyI7OxsAMDOnTvRvXt3yOVyzJ49G7a2tvj6669x9epVhWPNmzcPQ4cOhZmZGebOnQtdXV24urriyZMnCnU+Pj6YNGkSGjdujLlz5yI+Ph6dOnVCenq6Ql2vXr0wf/58uLq6YubMmbhw4QK6desGuVwu1mRlZaFz587YuHEj+vbti4CAAOzduxdeXl4lPRVERERUTskEQRCKW5yQkIA6depg6NChWLJkibg9KCgI06dPx6FDh9C+fXvUrVsXxsbGiIqKgqGhIeRyOVxcXKCt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KAYPHowWLVogISEB//77L+rXrw9TU1MkJCSou0WqgIKDg/H111/DwcEBI0aMgIWFBR49eoS1a9fi5s2bOHLkiLpbfCscQSpn6tWrh/379yMtLQ1btmyBjY2NePfA33//jbp166q5Q6qIevbsifPnz2PBggU4c+YMrl27Bk1NTVy9ehXDhw/H77//ju3bt6N3797qbvWjNmbMGOzduxdeXl6wsrJCgwYN4OHhgXnz5mHu3Llo2LChulukCqhz587YsmULnj59irFjx+K7777DuHHjEBcXh02bNsHNzU3dLb4VjiCVM6NHj8bIkSNhbGwMAJgxYwaAV5Plfv31VyxatEid7VEF5ujoCEdHR/HrLVu2KOy/ffs2F418g6FDh0Iul4uT2VetWoXu3btj0qRJ0NfXx/r169XcIVVUHh4e6N69O/766y88e/YMZmZmaNOmjdIz2coSroNUDm3evBlhYWFwcnLCsGHDAADdunVDmzZt4O/vr+buypekpCT06NEDixYtKrPX2alsS0tLw+3bt2FtbY0qVaqoux2icoMBiegNkpOTYWBgID5DrFKlSupuiYiI3jNeYitnBg8eXOR+mUzGYfhiWrBgAUJCQvD06VP8/vvvMDAwgKurK6ZOncqROFKbAwcO4PTp00hLS1Pax/+/iUoPA1I5ExoaKj6gFnh1V1tSUhIAwMTEBEZGRupqrUzZsGED/Pz8YG9vjydPngAALCws0LJlS0yZMgXVq1eHl5eXmrukimbGjBmYNm0aNDU1UbNmTaUHT7/+/z4RvRteYqsAHj9+jJ9++glHjhxBeHg4PvnkE3W39NGzt7dHgwYNsGLFCpiZmSk8a83DwwPXr1/HlStX1NwlVTSWlpaoU6cODhw4IC7nQUTvB2/zrwAsLCywYsUKDB48GL6+vupup0y4c+cOOnfurHJf+/btcefOnQ/cERGQkpICT09PhiOiD4ABqQIZOnQoHwZaTGZmZnj8+LHKfZcuXYKZmdkH7ogIaN26Nf766y91t0FUITAgVSBhYWGco1BMvXv3xtKlS8UPI5lMhszMTKxbtw7r1q1Dnz591NwhVURLly7FkSNHMH36dKXHOhBR6eIcpHKmsLvYHj9+jNDQUHz33Xd8XlMxZGZmonPnzvjrr78gCAIqV66MzMxMyOVyfP755/j999+hp6en7japnFP1//ODBw8Q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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data.isna().sum().plot.bar(title=\"特征变量缺失分布可视化\",color=\"orange\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['age_range'].fillna(0,inplace=True)# 0和NULL表示未知\n",
    "data['age_range'] = data['age_range'].astype('int8')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot: title={'center': '用户性别分布'}, ylabel='gender'>"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAa8AAAGgCAYAAAAdPejUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYtklEQVR4nO3dd3gU5d7G8e+W7KaHkEJCSOi9VwVFREAEQbEdFfRgBX312BAbYsfeFRUbYkcRu4CKIIJK7xBIIZCQHtKT7fP+sSYSkkCy2WR2N7/PdeUCZmdn7wTYe2fmmWc0iqIoCCGEEF5Eq3YAIYQQorGkvIQQQngdKS8hhBBeR8pLCCGE15HyEkII4XWkvIQQQngdKS8hhBBeR8pLCCGE15HyEkII4XWkvITPeu211+jTpw85OTkub2PSpElMmDDhlOstW7aMW2+9le3bt7v8Wo3x2WefccMNN7Bjx44GrX/kyJFay/bv38+DDz5IaWmpWzJlZmZy0UUXsWzZMsxms1u2KUR9pLxEs1u/fj0ajaZJX/n5+Y1+3aysLPbv38/zzz/vcvadO3eydevWU673999/s3DhwjpLoi4xMTHo9fqTfhUVFZ0013vvvUdBQUGDXm/y5MkMGTKEQ4cOVS/74IMPWLBgAYsWLWrQNk7lu+++45tvvuHee+/Fbre7ZZtC1EevdgDh+4xGIwBnnnkml1xySY3H0tPTefHFFxk+fDjTp0+v9dxnnnmG7Oxs/P39G/26d911Fy+88AJvv/02jzzyCEFBQY3ehsFgwOFw1Fr++OOPs2PHDp5++mm6d+9ena+hOQ0GA/7+/kybNq3WY6tXryY7O5vAwMB6n+/n51fj15NZtWoVe/fupX///nTs2LF6+Zw5c3jjjTd48sknufrqq2nXrl2Dstfngw8+AOCxxx47aXYh3EHKSzS7qjfYgQMHcscdd9R4bMuWLbz44ov06dOn1mMA7777LtnZ2RgMhka/bmRkJFdeeSUOh4O8vDyXykun01WX7/HWrVvHr7/+yuuvvw78W1p1rVsXvV5PZGQkH3/8ca3Hxo8fT3Z2do1i8vf3JzIykoyMjOpcAFrtyQ+eKIrCAw88AMBTTz1VY/3o6Gjuvfde5s+fz6xZs/j2229Puq2qw4v+/v7odLoa29qwYQMbN26kU6dOXHHFFfVuw+Fw4HA4MJvNWCwWwsPDT/qaQtRHyks0u6o32qbQ6+v+p1pQUMCcOXNO+lytVssjjzxS7+OXX345kyZNqvOxqsOWiYmJbNu2rXrvcM+ePXTq1InY2NiGfQN1ZKprj+7E164SFBREcHBwo1/n7bffZtu2bZx11lmcf/75tR6/++67+fDDD/nuu+947rnnmDt3br3buvHGG1m6dOlJXy8tLa3ev6sTdezYkbS0tAatK8SJpLxEs3NHedW3h2E2m1myZEmTtj1o0KAa5fX999/z4Ycf8sQTT1Qve/jhh1mxYgVTpkzBarWSnZ1NbGws11xzDQC7du0C4Omnn+aDDz5AURSsVitGo5HFixfXes3G3onIz8+vwaVQJTU1lbvvvhuNRlPveT9/f3/ee+89xo4dy7333ktMTAxXX311neuOHTuWtm3bVu95Vf29bt++nZ9//pkePXpw0UUXNTif7HWJppDyEs2uag8iKSmJzz//vMZjqampABw6dKjWYwDFxcUn3XbVobXzzz+fH374oVG5rrnmGpYsWVLrkOTmzZtZtmwZjz32WPWya6+9li+++ILPP/+cqKgoACorK1m5ciUA5eXlAGzatKn6PJnFYiEkJKTO17bZbBQXF9e5R1j1M7HZbI0urCoOh4P//ve/lJWVcdNNNzF8+PB61x09ejRPP/00c+fOZebMmWRlZXHPPffUWm/27Nm1lplMJgYMGIBWq2XJkiWcfvrp7Nmzh1tvvZVx48Yxf/58l/ILcUqKEM1s//79CtCkr/oUFhYqgHL++ec3OtfMmTMVQHnrrbdqLJ8+fbqi0+kUk8mkdO3aVenYsaNis9mUqKgoZezYscrNN9+sAMq2bduqn/P4448rgLJmzZoGvXZkZOQpv+eSkpLq9du1a6f07du3+s8PP/ywAih//PFHndufO3euAig9evRQysrKGpSpaptVP8/MzMxTPufee+9VAOW2226rXrZ9+3YFUK6//voGva4QrpCh8qLZVZ3bueWWW1AUpcbX5s2bAZg5c2atxxRFoW/fvifdtqt7Jsc78ZDkwYMH6dy5c43BFzqdjrvvvpsZM2bw1Vdf0aFDBwYNGuTya27dupVDhw5x6NAhzj33XGbMmMHGjRurlx06dMilASYAr7zyCs899xwBAQG8/fbb+Pn5nfL8GsAjjzzCG2+8gV6v58cff6Rnz54888wz9a7/7bff8txzzzFo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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data['gender'].value_counts().plot.pie(title=\"用户性别分布\",labels=[\"女性\",\"男性\",\"未知\"],autopct='%.2f%%')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['gender'].fillna(2,inplace=True)#2和NULL表示未知\n",
    "data['gender'] = data['gender'].astype('int8')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['merchant_id'] = data['merchant_id'].astype('int32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['label'] = data['label'].astype('str') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>age_range</th>\n",
       "      <th>gender</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>label</th>\n",
       "      <th>origin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>376517</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>2579</td>\n",
       "      <td>0.0</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>234512</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3018</td>\n",
       "      <td>0.0</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>234512</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3271</td>\n",
       "      <td>0.0</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>344532</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>246</td>\n",
       "      <td>nan</td>\n",
       "      <td>test</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>186135</td>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>1340</td>\n",
       "      <td>0.0</td>\n",
       "      <td>train</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  age_range  gender  merchant_id label origin\n",
       "0   376517          6       1         2579   0.0  train\n",
       "1   234512          5       0         3018   0.0  train\n",
       "2   234512          5       0         3271   0.0  train\n",
       "3   344532          5       0          246   nan   test\n",
       "4   186135          5       0         1340   0.0  train"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_log['user_id'] = user_log['user_id'].astype('int32')\n",
    "user_log['item_id'] = user_log['item_id'].astype('int32')\n",
    "user_log['cat_id'] = user_log['cat_id'].astype('int32')\n",
    "user_log['merchant_id'] = user_log['merchant_id'].astype('int32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>item_id</th>\n",
       "      <th>cat_id</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>brand_id</th>\n",
       "      <th>time_stamp</th>\n",
       "      <th>action_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>328862</td>\n",
       "      <td>323294</td>\n",
       "      <td>833</td>\n",
       "      <td>2882</td>\n",
       "      <td>2661.0</td>\n",
       "      <td>829</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>328862</td>\n",
       "      <td>844400</td>\n",
       "      <td>1271</td>\n",
       "      <td>2882</td>\n",
       "      <td>2661.0</td>\n",
       "      <td>829</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>328862</td>\n",
       "      <td>575153</td>\n",
       "      <td>1271</td>\n",
       "      <td>2882</td>\n",
       "      <td>2661.0</td>\n",
       "      <td>829</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>328862</td>\n",
       "      <td>996875</td>\n",
       "      <td>1271</td>\n",
       "      <td>2882</td>\n",
       "      <td>2661.0</td>\n",
       "      <td>829</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>328862</td>\n",
       "      <td>1086186</td>\n",
       "      <td>1271</td>\n",
       "      <td>1253</td>\n",
       "      <td>1049.0</td>\n",
       "      <td>829</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  item_id  cat_id  merchant_id  brand_id  time_stamp  action_type\n",
       "0   328862   323294     833         2882    2661.0         829            0\n",
       "1   328862   844400    1271         2882    2661.0         829            0\n",
       "2   328862   575153    1271         2882    2661.0         829            0\n",
       "3   328862   996875    1271         2882    2661.0         829            0\n",
       "4   328862  1086186    1271         1253    1049.0         829            0"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_log.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_log['brand_id'].fillna(0,inplace=True)\n",
    "user_log['brand_id'] = user_log['brand_id'].astype('int32')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 添加一个临时年\n",
    "user_log['time_stamp'] = user_log['time_stamp'].astype('str').apply(lambda x:'2020'+x)\n",
    "user_log['time_stamp'] = pd.to_datetime(user_log['time_stamp'],format='%Y%m%d')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "user_log['action_type'] = user_log['action_type'].astype('int8')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 54925330 entries, 0 to 54925329\n",
      "Data columns (total 7 columns):\n",
      " #   Column       Dtype         \n",
      "---  ------       -----         \n",
      " 0   user_id      int32         \n",
      " 1   item_id      int32         \n",
      " 2   cat_id       int32         \n",
      " 3   merchant_id  int32         \n",
      " 4   brand_id     int32         \n",
      " 5   time_stamp   datetime64[ns]\n",
      " 6   action_type  int8          \n",
      "dtypes: datetime64[ns](1), int32(5), int8(1)\n",
      "memory usage: 1.5 GB\n"
     ]
    }
   ],
   "source": [
    "user_log.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "groups = user_log.groupby(['user_id'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>u1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>173</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424165</th>\n",
       "      <td>424166</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424166</th>\n",
       "      <td>424167</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424167</th>\n",
       "      <td>424168</td>\n",
       "      <td>223</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424168</th>\n",
       "      <td>424169</td>\n",
       "      <td>297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424169</th>\n",
       "      <td>424170</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>424170 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id   u1\n",
       "0             1   33\n",
       "1             2   63\n",
       "2             3   68\n",
       "3             4   50\n",
       "4             5  173\n",
       "...         ...  ...\n",
       "424165   424166   90\n",
       "424166   424167   35\n",
       "424167   424168  223\n",
       "424168   424169  297\n",
       "424169   424170   40\n",
       "\n",
       "[424170 rows x 2 columns]"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计交互行为数量\n",
    "temp = groups.size().reset_index().rename(columns={0:'u1'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on='user_id',how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>u2</th>\n",
       "      <th>u3</th>\n",
       "      <th>u4</th>\n",
       "      <th>u5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>6</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>43</td>\n",
       "      <td>14</td>\n",
       "      <td>14</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>45</td>\n",
       "      <td>19</td>\n",
       "      <td>23</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>87</td>\n",
       "      <td>40</td>\n",
       "      <td>56</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424165</th>\n",
       "      <td>424166</td>\n",
       "      <td>48</td>\n",
       "      <td>12</td>\n",
       "      <td>22</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424166</th>\n",
       "      <td>424167</td>\n",
       "      <td>15</td>\n",
       "      <td>9</td>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424167</th>\n",
       "      <td>424168</td>\n",
       "      <td>160</td>\n",
       "      <td>48</td>\n",
       "      <td>112</td>\n",
       "      <td>97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424168</th>\n",
       "      <td>424169</td>\n",
       "      <td>176</td>\n",
       "      <td>46</td>\n",
       "      <td>102</td>\n",
       "      <td>103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424169</th>\n",
       "      <td>424170</td>\n",
       "      <td>15</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>424170 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id   u2  u3   u4   u5\n",
       "0             1   12   6    9    9\n",
       "1             2   43  14   14   15\n",
       "2             3   45  19   23   22\n",
       "3             4   28  13   12   12\n",
       "4             5   87  40   56   60\n",
       "...         ...  ...  ..  ...  ...\n",
       "424165   424166   48  12   22   23\n",
       "424166   424167   15   9   12    9\n",
       "424167   424168  160  48  112   97\n",
       "424168   424169  176  46  102  103\n",
       "424169   424170   15   5    6    6\n",
       "\n",
       "[424170 rows x 5 columns]"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计'item_id','cat_id','merchant_id','brand_id' 不重复值个数\n",
    "temp = groups['item_id','cat_id','merchant_id','brand_id'].nunique().reset_index().rename(columns={\n",
    "    'item_id':'u2','cat_id':'u3','merchant_id':'u4','brand_id':'u5'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on='user_id',how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>buy_far_time</th>\n",
       "      <th>buy_late_time</th>\n",
       "      <th>u6</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2020-10-09</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2020-05-27</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>168</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2020-05-16</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2020-05-27</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>168</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2020-05-19</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424165</th>\n",
       "      <td>424166</td>\n",
       "      <td>2020-05-14</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424166</th>\n",
       "      <td>424167</td>\n",
       "      <td>2020-05-29</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>166</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424167</th>\n",
       "      <td>424168</td>\n",
       "      <td>2020-05-23</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>172</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424168</th>\n",
       "      <td>424169</td>\n",
       "      <td>2020-05-11</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>184</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424169</th>\n",
       "      <td>424170</td>\n",
       "      <td>2020-11-05</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>424170 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        user_id buy_far_time buy_late_time   u6\n",
       "0             1   2020-10-09    2020-11-11   33\n",
       "1             2   2020-05-27    2020-11-11  168\n",
       "2             3   2020-05-16    2020-11-11  179\n",
       "3             4   2020-05-27    2020-11-11  168\n",
       "4             5   2020-05-19    2020-11-11  176\n",
       "...         ...          ...           ...  ...\n",
       "424165   424166   2020-05-14    2020-11-11  181\n",
       "424166   424167   2020-05-29    2020-11-11  166\n",
       "424167   424168   2020-05-23    2020-11-11  172\n",
       "424168   424169   2020-05-11    2020-11-11  184\n",
       "424169   424170   2020-11-05    2020-11-11    6\n",
       "\n",
       "[424170 rows x 4 columns]"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计时间间隔\n",
    "temp = groups['time_stamp'].agg([('buy_far_time','min'),('buy_late_time','max')]).reset_index()\n",
    "temp['u6'] = (temp['buy_late_time'] - temp['buy_far_time']).dt.days\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp[['user_id','u6']],on='user_id',how='left')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>action_type</th>\n",
       "      <th>user_id</th>\n",
       "      <th>u7</th>\n",
       "      <th>u8</th>\n",
       "      <th>u9</th>\n",
       "      <th>u10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>27.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>47.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>14.0</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>49.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>150.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>13.0</td>\n",
       "      <td>10.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424165</th>\n",
       "      <td>424166</td>\n",
       "      <td>79.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424166</th>\n",
       "      <td>424167</td>\n",
       "      <td>28.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424167</th>\n",
       "      <td>424168</td>\n",
       "      <td>216.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424168</th>\n",
       "      <td>424169</td>\n",
       "      <td>277.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>17.0</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424169</th>\n",
       "      <td>424170</td>\n",
       "      <td>39.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>424170 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "action_type  user_id     u7  u8    u9   u10\n",
       "0                  1   27.0 NaN   6.0   NaN\n",
       "1                  2   47.0 NaN  14.0   2.0\n",
       "2                  3   63.0 NaN   4.0   1.0\n",
       "3                  4   49.0 NaN   1.0   NaN\n",
       "4                  5  150.0 NaN  13.0  10.0\n",
       "...              ...    ...  ..   ...   ...\n",
       "424165        424166   79.0 NaN  11.0   NaN\n",
       "424166        424167   28.0 NaN   6.0   1.0\n",
       "424167        424168  216.0 NaN   6.0   1.0\n",
       "424168        424169  277.0 NaN  17.0   3.0\n",
       "424169        424170   39.0 NaN   1.0   NaN\n",
       "\n",
       "[424170 rows x 5 columns]"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计操作类型为0，1，2，3的个数\n",
    "temp = groups['action_type'].value_counts().unstack().reset_index().rename(columns={0:'u7', 1:'u8', 2:'u9', 3:'u10'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp[['user_id', 'u7','u8','u9','u10']],on='user_id',how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    "groups = user_log.groupby(['merchant_id'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>m1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>339140</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2645</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>3106</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>8192</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4990</th>\n",
       "      <td>4991</td>\n",
       "      <td>666</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4991</th>\n",
       "      <td>4992</td>\n",
       "      <td>13876</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4992</th>\n",
       "      <td>4993</td>\n",
       "      <td>14267</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4993</th>\n",
       "      <td>4994</td>\n",
       "      <td>6159</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4994</th>\n",
       "      <td>4995</td>\n",
       "      <td>7508</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4995 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      merchant_id      m1\n",
       "0               1  339140\n",
       "1               2    2371\n",
       "2               3    2645\n",
       "3               4    3106\n",
       "4               5    8192\n",
       "...           ...     ...\n",
       "4990         4991     666\n",
       "4991         4992   13876\n",
       "4992         4993   14267\n",
       "4993         4994    6159\n",
       "4994         4995    7508\n",
       "\n",
       "[4995 rows x 2 columns]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计 商家被交互行为数量\n",
    "temp = groups.size().reset_index().rename(columns={0:'m1'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on='merchant_id',how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>m2</th>\n",
       "      <th>m3</th>\n",
       "      <th>m4</th>\n",
       "      <th>m5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>30796</td>\n",
       "      <td>2977</td>\n",
       "      <td>44</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>936</td>\n",
       "      <td>154</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1136</td>\n",
       "      <td>171</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1481</td>\n",
       "      <td>155</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>3652</td>\n",
       "      <td>660</td>\n",
       "      <td>23</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4990</th>\n",
       "      <td>4991</td>\n",
       "      <td>227</td>\n",
       "      <td>32</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4991</th>\n",
       "      <td>4992</td>\n",
       "      <td>2570</td>\n",
       "      <td>98</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4992</th>\n",
       "      <td>4993</td>\n",
       "      <td>3986</td>\n",
       "      <td>162</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4993</th>\n",
       "      <td>4994</td>\n",
       "      <td>2736</td>\n",
       "      <td>778</td>\n",
       "      <td>15</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4994</th>\n",
       "      <td>4995</td>\n",
       "      <td>3017</td>\n",
       "      <td>288</td>\n",
       "      <td>84</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4995 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      merchant_id     m2    m3  m4  m5\n",
       "0               1  30796  2977  44   3\n",
       "1               2    936   154  10   2\n",
       "2               3   1136   171   4   2\n",
       "3               4   1481   155   7   3\n",
       "4               5   3652   660  23   2\n",
       "...           ...    ...   ...  ..  ..\n",
       "4990         4991    227    32   2   2\n",
       "4991         4992   2570    98   2   2\n",
       "4992         4993   3986   162   2   2\n",
       "4993         4994   2736   778  15   4\n",
       "4994         4995   3017   288  84  16\n",
       "\n",
       "[4995 rows x 5 columns]"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计'user_id','item_id','cat_id','brand_id' 不重复值个数\n",
    "temp = groups['user_id','item_id','cat_id','brand_id'].nunique().reset_index().rename(columns={\n",
    "    'user_id':'m2','item_id':'m3','cat_id':'m4','brand_id':'m5'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on='merchant_id',how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>action_type</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>m6</th>\n",
       "      <th>m7</th>\n",
       "      <th>m8</th>\n",
       "      <th>m9</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>308236.0</td>\n",
       "      <td>444.0</td>\n",
       "      <td>17705.0</td>\n",
       "      <td>12755.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2030.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>189.0</td>\n",
       "      <td>144.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2399.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>175.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2646.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>294.0</td>\n",
       "      <td>164.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>7483.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>144.0</td>\n",
       "      <td>556.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4990</th>\n",
       "      <td>4991</td>\n",
       "      <td>556.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>80.0</td>\n",
       "      <td>28.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4991</th>\n",
       "      <td>4992</td>\n",
       "      <td>11380.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>1971.0</td>\n",
       "      <td>505.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4992</th>\n",
       "      <td>4993</td>\n",
       "      <td>12324.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>769.0</td>\n",
       "      <td>1156.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4993</th>\n",
       "      <td>4994</td>\n",
       "      <td>5756.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>164.0</td>\n",
       "      <td>226.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4994</th>\n",
       "      <td>4995</td>\n",
       "      <td>6134.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>911.0</td>\n",
       "      <td>447.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>4995 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "action_type  merchant_id        m6     m7       m8       m9\n",
       "0                      1  308236.0  444.0  17705.0  12755.0\n",
       "1                      2    2030.0    8.0    189.0    144.0\n",
       "2                      3    2399.0    4.0     67.0    175.0\n",
       "3                      4    2646.0    2.0    294.0    164.0\n",
       "4                      5    7483.0    9.0    144.0    556.0\n",
       "...                  ...       ...    ...      ...      ...\n",
       "4990                4991     556.0    2.0     80.0     28.0\n",
       "4991                4992   11380.0   20.0   1971.0    505.0\n",
       "4992                4993   12324.0   18.0    769.0   1156.0\n",
       "4993                4994    5756.0   13.0    164.0    226.0\n",
       "4994                4995    6134.0   16.0    911.0    447.0\n",
       "\n",
       "[4995 rows x 5 columns]"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计商家被交互的action_type数量\n",
    "temp = groups['action_type'].value_counts().unstack().reset_index().rename(columns={0:'m6', 1:'m7', 2:'m8', 3:'m9'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on='merchant_id',how='left')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>m10</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>10</td>\n",
       "      <td>440</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>13</td>\n",
       "      <td>166</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1988</th>\n",
       "      <td>4987</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1989</th>\n",
       "      <td>4988</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1990</th>\n",
       "      <td>4991</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1991</th>\n",
       "      <td>4992</td>\n",
       "      <td>413</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1992</th>\n",
       "      <td>4993</td>\n",
       "      <td>127</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1993 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      merchant_id  m10\n",
       "0               2   57\n",
       "1               8   21\n",
       "2               9   30\n",
       "3              10  440\n",
       "4              13  166\n",
       "...           ...  ...\n",
       "1988         4987   36\n",
       "1989         4988   22\n",
       "1990         4991   35\n",
       "1991         4992  413\n",
       "1992         4993  127\n",
       "\n",
       "[1993 rows x 2 columns]"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 按照merchant_id统计随机负采样的个数\n",
    "temp = train[train['label']==0].groupby(['merchant_id']).size().reset_index().rename(columns={0:'m10'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on='merchant_id',how='left')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [],
   "source": [
    "groups = user_log.groupby(['user_id','merchant_id'])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>um1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>471</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>739</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>925</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1019</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1156</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058661</th>\n",
       "      <td>424170</td>\n",
       "      <td>1082</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058662</th>\n",
       "      <td>424170</td>\n",
       "      <td>3469</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058663</th>\n",
       "      <td>424170</td>\n",
       "      <td>3736</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058664</th>\n",
       "      <td>424170</td>\n",
       "      <td>4268</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058665</th>\n",
       "      <td>424170</td>\n",
       "      <td>4963</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14058666 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          user_id  merchant_id  um1\n",
       "0               1          471    1\n",
       "1               1          739    1\n",
       "2               1          925    4\n",
       "3               1         1019   14\n",
       "4               1         1156    1\n",
       "...           ...          ...  ...\n",
       "14058661   424170         1082    1\n",
       "14058662   424170         3469    1\n",
       "14058663   424170         3736   10\n",
       "14058664   424170         4268   25\n",
       "14058665   424170         4963    1\n",
       "\n",
       "[14058666 rows x 3 columns]"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计交互行为数量\n",
    "temp = groups.size().reset_index().rename(columns={0:'um1'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on=['user_id','merchant_id'],how='left')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>um2</th>\n",
       "      <th>um3</th>\n",
       "      <th>um4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>471</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>739</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>925</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1019</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1156</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058661</th>\n",
       "      <td>424170</td>\n",
       "      <td>1082</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058662</th>\n",
       "      <td>424170</td>\n",
       "      <td>3469</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058663</th>\n",
       "      <td>424170</td>\n",
       "      <td>3736</td>\n",
       "      <td>7</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058664</th>\n",
       "      <td>424170</td>\n",
       "      <td>4268</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058665</th>\n",
       "      <td>424170</td>\n",
       "      <td>4963</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14058666 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          user_id  merchant_id  um2  um3  um4\n",
       "0               1          471    1    1    1\n",
       "1               1          739    1    1    1\n",
       "2               1          925    1    1    1\n",
       "3               1         1019    1    1    1\n",
       "4               1         1156    1    1    1\n",
       "...           ...          ...  ...  ...  ...\n",
       "14058661   424170         1082    1    1    1\n",
       "14058662   424170         3469    1    1    1\n",
       "14058663   424170         3736    7    2    1\n",
       "14058664   424170         4268    3    1    1\n",
       "14058665   424170         4963    1    1    1\n",
       "\n",
       "[14058666 rows x 5 columns]"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计'item_id','cat_id','brand_id' 不重复值个数\n",
    "temp = groups['item_id','cat_id','brand_id'].nunique().reset_index().rename(columns={\n",
    "    'item_id':'um2','cat_id':'um3','brand_id':'um4'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on=['user_id','merchant_id'],how='left')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>action_type</th>\n",
       "      <th>user_id</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>um5</th>\n",
       "      <th>um6</th>\n",
       "      <th>um7</th>\n",
       "      <th>um8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>471</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>739</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>925</td>\n",
       "      <td>3.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1019</td>\n",
       "      <td>10.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1156</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058661</th>\n",
       "      <td>424170</td>\n",
       "      <td>1082</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058662</th>\n",
       "      <td>424170</td>\n",
       "      <td>3469</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058663</th>\n",
       "      <td>424170</td>\n",
       "      <td>3736</td>\n",
       "      <td>10.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058664</th>\n",
       "      <td>424170</td>\n",
       "      <td>4268</td>\n",
       "      <td>24.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058665</th>\n",
       "      <td>424170</td>\n",
       "      <td>4963</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14058666 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "action_type  user_id  merchant_id   um5  um6  um7  um8\n",
       "0                  1          471   1.0  NaN  NaN  NaN\n",
       "1                  1          739   1.0  NaN  NaN  NaN\n",
       "2                  1          925   3.0  NaN  1.0  NaN\n",
       "3                  1         1019  10.0  NaN  4.0  NaN\n",
       "4                  1         1156   1.0  NaN  NaN  NaN\n",
       "...              ...          ...   ...  ...  ...  ...\n",
       "14058661      424170         1082   1.0  NaN  NaN  NaN\n",
       "14058662      424170         3469   1.0  NaN  NaN  NaN\n",
       "14058663      424170         3736  10.0  NaN  NaN  NaN\n",
       "14058664      424170         4268  24.0  NaN  1.0  NaN\n",
       "14058665      424170         4963   1.0  NaN  NaN  NaN\n",
       "\n",
       "[14058666 rows x 6 columns]"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计操作类型为0，1，2，3的个数\n",
    "temp = groups['action_type'].value_counts().unstack().reset_index().rename(columns={0:'um5', 1:'um6', 2:'um7', 3:'um8'})\n",
    "\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp,on=['user_id','merchant_id'],how='left')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>merchant_id</th>\n",
       "      <th>buy_far_time</th>\n",
       "      <th>buy_late_time</th>\n",
       "      <th>um9</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>471</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>739</td>\n",
       "      <td>2020-10-18</td>\n",
       "      <td>2020-10-18</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>925</td>\n",
       "      <td>2020-10-11</td>\n",
       "      <td>2020-10-11</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1019</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1156</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058661</th>\n",
       "      <td>424170</td>\n",
       "      <td>1082</td>\n",
       "      <td>2020-11-08</td>\n",
       "      <td>2020-11-08</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058662</th>\n",
       "      <td>424170</td>\n",
       "      <td>3469</td>\n",
       "      <td>2020-11-05</td>\n",
       "      <td>2020-11-05</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058663</th>\n",
       "      <td>424170</td>\n",
       "      <td>3736</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058664</th>\n",
       "      <td>424170</td>\n",
       "      <td>4268</td>\n",
       "      <td>2020-11-05</td>\n",
       "      <td>2020-11-11</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14058665</th>\n",
       "      <td>424170</td>\n",
       "      <td>4963</td>\n",
       "      <td>2020-11-07</td>\n",
       "      <td>2020-11-07</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>14058666 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          user_id  merchant_id buy_far_time buy_late_time  um9\n",
       "0               1          471   2020-11-11    2020-11-11    0\n",
       "1               1          739   2020-10-18    2020-10-18    0\n",
       "2               1          925   2020-10-11    2020-10-11    0\n",
       "3               1         1019   2020-11-11    2020-11-11    0\n",
       "4               1         1156   2020-11-11    2020-11-11    0\n",
       "...           ...          ...          ...           ...  ...\n",
       "14058661   424170         1082   2020-11-08    2020-11-08    0\n",
       "14058662   424170         3469   2020-11-05    2020-11-05    0\n",
       "14058663   424170         3736   2020-11-11    2020-11-11    0\n",
       "14058664   424170         4268   2020-11-05    2020-11-11    6\n",
       "14058665   424170         4963   2020-11-07    2020-11-07    0\n",
       "\n",
       "[14058666 rows x 5 columns]"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 统计时间间隔\n",
    "temp = groups['time_stamp'].agg([('buy_far_time','min'),('buy_late_time','max')]).reset_index()\n",
    "temp['um9'] = (temp['buy_late_time'] - temp['buy_far_time']).dt.days\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.merge(data,temp[['user_id','merchant_id','um9']],on=['user_id','merchant_id'],how='left')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 用户购买点击比\n",
    "data['r1'] = data['u9']/data['u7']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 商家购买点击比\n",
    "data['r2'] = data['m8']/data['m6']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 不同用户不同商家购买点击比\n",
    "data['r3'] = data['um7']/data['um5']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age_0</th>\n",
       "      <th>age_1</th>\n",
       "      <th>age_2</th>\n",
       "      <th>age_3</th>\n",
       "      <th>age_4</th>\n",
       "      <th>age_5</th>\n",
       "      <th>age_6</th>\n",
       "      <th>age_7</th>\n",
       "      <th>age_8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522336</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522337</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522338</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522339</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522340</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>522341 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        age_0  age_1  age_2  age_3  age_4  age_5  age_6  age_7  age_8\n",
       "0           0      0      0      0      0      0      1      0      0\n",
       "1           0      0      0      0      0      1      0      0      0\n",
       "2           0      0      0      0      0      1      0      0      0\n",
       "3           0      0      0      0      0      1      0      0      0\n",
       "4           0      0      0      0      0      1      0      0      0\n",
       "...       ...    ...    ...    ...    ...    ...    ...    ...    ...\n",
       "522336      1      0      0      0      0      0      0      0      0\n",
       "522337      1      0      0      0      0      0      0      0      0\n",
       "522338      1      0      0      0      0      0      0      0      0\n",
       "522339      0      0      0      0      0      0      1      0      0\n",
       "522340      0      0      0      1      0      0      0      0      0\n",
       "\n",
       "[522341 rows x 9 columns]"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 年龄\n",
    "temp = pd.get_dummies(data['age_range'], prefix='age')\n",
    "\n",
    "temp "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.concat([data,temp],axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>gender_0</th>\n",
       "      <th>gender_1</th>\n",
       "      <th>gender_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522336</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522337</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522338</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522339</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>522340</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>522341 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        gender_0  gender_1  gender_2\n",
       "0              0         1         0\n",
       "1              1         0         0\n",
       "2              1         0         0\n",
       "3              1         0         0\n",
       "4              1         0         0\n",
       "...          ...       ...       ...\n",
       "522336         0         1         0\n",
       "522337         0         1         0\n",
       "522338         0         0         1\n",
       "522339         0         1         0\n",
       "522340         0         1         0\n",
       "\n",
       "[522341 rows x 3 columns]"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 性别\n",
    "temp = pd.get_dummies(data['gender'], prefix='gender')\n",
    "\n",
    "temp "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.concat([data,temp],axis=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.drop(columns=['age_range','gender'],inplace=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot: >"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1600x1600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "corr_map = data[data.columns[8:15]].corr()\n",
    "plt.figure(figsize= (16,16))\n",
    "sns.heatmap(corr_map,annot=True,cmap=\"Blues_r\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = data[data['origin']=='train'].drop(['origin'],axis=1)\n",
    "test = data[data['origin']=='test'].drop(['label','origin'],axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练集、测试集构建"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "X,Y = train.drop(['label'],axis=1),train['label'] \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_x,valid_x,train_y,valid_y = train_test_split(X,Y,test_size=0.2)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型构建及训练 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from lightgbm import LGBMClassifier\n",
    "from sklearn.metrics import accuracy_score,roc_auc_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = LGBMClassifier(\n",
    "    num_leaves=10,\n",
    "    learning_rate=0.05,\n",
    "    n_estimators=1000,\n",
    "    subsample=0.8,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[50]\ttraining's auc: 0.66164\ttraining's binary_logloss: 0.221333\tvalid_1's auc: 0.660795\tvalid_1's binary_logloss: 0.216196\n",
      "[100]\ttraining's auc: 0.679461\ttraining's binary_logloss: 0.21872\tvalid_1's auc: 0.673812\tvalid_1's binary_logloss: 0.21428\n",
      "[150]\ttraining's auc: 0.689403\ttraining's binary_logloss: 0.217141\tvalid_1's auc: 0.678763\tvalid_1's binary_logloss: 0.213508\n",
      "[200]\ttraining's auc: 0.697865\ttraining's binary_logloss: 0.21582\tvalid_1's auc: 0.680905\tvalid_1's binary_logloss: 0.213153\n",
      "[250]\ttraining's auc: 0.704868\ttraining's binary_logloss: 0.214653\tvalid_1's auc: 0.682682\tvalid_1's binary_logloss: 0.212904\n",
      "[300]\ttraining's auc: 0.711603\ttraining's binary_logloss: 0.213578\tvalid_1's auc: 0.684168\tvalid_1's binary_logloss: 0.212744\n",
      "[350]\ttraining's auc: 0.717313\ttraining's binary_logloss: 0.212569\tvalid_1's auc: 0.685089\tvalid_1's binary_logloss: 0.21263\n",
      "[400]\ttraining's auc: 0.722947\ttraining's binary_logloss: 0.211612\tvalid_1's auc: 0.685967\tvalid_1's binary_logloss: 0.212531\n",
      "[450]\ttraining's auc: 0.728178\ttraining's binary_logloss: 0.210618\tvalid_1's auc: 0.686831\tvalid_1's binary_logloss: 0.212401\n",
      "[500]\ttraining's auc: 0.732972\ttraining's binary_logloss: 0.209747\tvalid_1's auc: 0.687103\tvalid_1's binary_logloss: 0.212376\n",
      "[550]\ttraining's auc: 0.737604\ttraining's binary_logloss: 0.208884\tvalid_1's auc: 0.687426\tvalid_1's binary_logloss: 0.212338\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "LGBMClassifier(learning_rate=0.05, n_estimators=1000, num_leaves=10,\n",
       "               subsample=0.8)"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(\n",
    "    train_x,train_y,\n",
    "    eval_set=[(train_x,train_y), (valid_x,valid_y)],\n",
    "    eval_metric='auc',\n",
    "    verbose=50,\n",
    "    early_stopping_rounds=30 #早停法，如果auc在30epoch没有进步就stop\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型预测及评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy： 0.9389720314033366\n",
      "roc_auc： 0.7269040685796611\n"
     ]
    }
   ],
   "source": [
    "print('accuracy：',accuracy_score(Y,model.predict(X)))\n",
    "print('roc_auc：',roc_auc_score(Y,model.predict_proba(X)[:,1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(208691, 46)"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '特征名称')"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1120x960 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(14, 12), dpi=80)\n",
    "plt.barh(train_x.columns.tolist(),height=0.5,width=model.feature_importances_,align=\"center\",color=\"red\")\n",
    "plt.xlabel(\"特征重要程度值\")\n",
    "plt.ylabel(\"特征名称\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "prob = model.predict_proba(test)[:,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning: Overfitting detector is active, thus evaluation metric is calculated on every iteration. 'metric_period' is ignored for evaluation metric.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0:\ttest: 0.5653163\tbest: 0.5653163 (0)\ttotal: 18.6ms\tremaining: 18.6s\n",
      "200:\ttest: 0.6755225\tbest: 0.6755225 (200)\ttotal: 3.68s\tremaining: 14.6s\n",
      "400:\ttest: 0.6816959\tbest: 0.6816959 (400)\ttotal: 7.26s\tremaining: 10.8s\n",
      "600:\ttest: 0.6838039\tbest: 0.6838039 (600)\ttotal: 10.8s\tremaining: 7.2s\n",
      "800:\ttest: 0.6860257\tbest: 0.6860471 (799)\ttotal: 14.4s\tremaining: 3.58s\n",
      "999:\ttest: 0.6869916\tbest: 0.6869916 (999)\ttotal: 17.9s\tremaining: 0us\n",
      "\n",
      "bestTest = 0.6869915638\n",
      "bestIteration = 999\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from catboost import CatBoostClassifier\n",
    "#0.05\n",
    "params = {'learning_rate': 0.05, 'depth': 6, 'l2_leaf_reg': 20, 'bootstrap_type':'Bernoulli','random_seed':2022,\n",
    "                'od_type': 'Iter', 'od_wait': 50, 'random_seed': 11, 'allow_writing_files': False}\n",
    "clf = CatBoostClassifier(iterations=1000, **params, eval_metric='AUC')\n",
    "clf.fit(train_x, train_y, eval_set=(valid_x, valid_y),\n",
    "                    metric_period=200,\n",
    "                    cat_features=[], \n",
    "                    use_best_model=True, \n",
    "                    verbose=1)\n",
    "val_pred  = clf.predict_proba(valid_x)[:,1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy： 0.9395623773307163\n",
      "roc_auc： 0.7242173203009598\n"
     ]
    }
   ],
   "source": [
    "print('accuracy：',accuracy_score(Y,clf.predict(X)))\n",
    "print('roc_auc：',roc_auc_score(Y,clf.predict_proba(X)[:,1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "submission = pd.DataFrame()\n",
    "submission[['user_id','merchant_id']] = test[['user_id','merchant_id']]\n",
    "submission['prob'] = prob\n",
    "submission.to_csv('prediction_lightbgm.csv',index=False) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
